加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【Rails】有关TDD测试入门

发布时间:2020-12-13 22:28:20 所属栏目:百科 来源:网络整理
导读:1.让 Rails 使用 RSpec 而不用 Test::Unit rails generate rspec:install 2.为一些静态界面生成集中测试 $ rails generate integration_test static_pages invoke rspec create spec/requests/static_pages_spec.rb 可以很清楚的看到生成了 static_pages_spe



1.让 Rails 使用 RSpec 而不用 Test::Unit

rails generate rspec:install


2.为一些静态界面生成集中测试

$ rails generate integration_test static_pages
invoke rspec
create spec/requests/static_pages_spec.rb

可以很清楚的看到生成了static_pages_spec.rb这个文件 ,内容如下:

[plain] view plain copy print ?
  1. require'spec_helper'
  2. describe"StaticPages"do
  3. describe"GET/static_pages"do
  4. it"works!(nowwritesomerealspecs)"do
  5. #Runthegeneratoragainwiththe--webratflagifyouwanttousewebratmethods/matchers
  6. getstatic_pages_index_path
  7. response.status.shouldbe(200)
  8. end
  9. end
  10. end

3.写一个测试首页内容的测试:

[plain] view plain copy print ?
  1. require'spec_helper'
  2. describe"Staticpages"do
  3. describe"Homepage"do
  4. it"shouldhavethecontent'SampleApp'"do
  5. visit'/static_pages/home'
  6. expect(page).tohave_content('SampleApp')
  7. end
  8. end
  9. end


4若要测试正确运行,我们要在 spec_helper.rb 中加入一行代码

[plain] view plain copy print ?
  1. RSpec.configuredo|config|
  2. .
  3. .
  4. .
  5. config.includeCapybara::DSL
  6. end

5.运行测试:

bundle exec rspec spec/requests/static_pages_spec.rb

可以看到我们的测试是失败的,因为首页是系统为我们生成的,不包含测试通过所需要的“Sample App”

将其修改便可以使得测试通过,这就是BDD,行为驱动测试,先写失败的测试,不断改进,使之成功。


如果写一个有关“About”页面的测试,开始提示路由失败,我们添加路由,提示action找不到错误,继续添加action,发现缺少模板,添加相关页面文件,最后测试变绿

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读