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这个文件 ,内容如下:
require 'spec_helper' describe "StaticPages" do describe "GET /static_pages" do it "works! (Now write some real specs)" do # Run the generator again with the --webrat flag if you want to use webrat methods/matchers get static_pages_index_path response.status.should be(200) end end end
3.写一个测试首页内容的测试:
require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the content 'Sample App'" do visit '/static_pages/home' expect(page).to have_content('Sample App') end end end
4若要测试正确运行,我们要在 spec_helper.rb 中加入一行代码
RSpec.configure do |config| . . . config.include Capybara::DSL end
5.运行测试:
bundle exec rspec spec/requests/static_pages_spec.rb
可以看到我们的测试是失败的,因为首页是系统为我们生成的,不包含测试通过所需要的“Sample App”
将其修改便可以使得测试通过,这就是BDD,行为驱动测试,先写失败的测试,不断改进,使之成功。
如果写一个有关“About”页面的测试,开始提示路由失败,我们添加路由,提示action找不到错误,继续添加action,发现缺少模板,添加相关页面文件,最后测试变绿
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。