繁体   English   中英

Rspec / Capybara测试不一致

[英]inconsistent Rspec/Capybara tests

我已经在我的routes.rb文件中注释了[获取“页面/主页”],重新启动了整个测试环境,并且以下测试仍通过:

it "should contain 'This is a test'" do
  get 'home'
  response.body.should have_selector("p")
end

据我了解,capybara从内存中的“浏览器”运行rspec测试。 在这种情况下,必须存在铁轨路线! 在注释掉我的路由后,它仍然能够加载页面-我知道这是因为如果删除<p>选择器,则测试将失败。 修改routes.rb文件后,我重新启动了测试套件,但这没有什么不同。

这使我对测试过程失去了信任,因为我有不应该通过的测试!

看来此片段在控制器规格中,直接打到您的控制器上。 在最新版本的rspec 2.9.0中,错误的路由不会使此示例失败。 路由超出了控制器规范的范围。

似乎您打算编写一个请求规范,该规范应使用capybara的visit方法:

# spec/requests/something_spec.rb
require 'spec_helper'

describe 'home page' do

  it "should contain 'This is a test'" do
    visit '/pages/home'
    page.should have_content 'This is a test'
  end

end

有关更多示例,请参见capybara文档 Rspec还支持路由规范 ,但我通常仅将其用于异常路由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM