我正在关注 Micheal Hartl的Ruby on rails教程2.3版,我已按照正确的集成测试步骤进行操作。在 / sample_app / spec / integration 我有一个名为 layout_links_spec.rb 的文件,如下所示。
require 'spec_helper'
describe "Layout links" do
it "should have a Home page at '/'" do
get '/'
response.should render_template('pages/home')
end
end
当我做的时候
$ spec spec/
我收到以下错误
1)
NoMethodError in 'Layout links should have a Home page at '/''
undefined method `merge' for nil:NilClass
/home/rails_projects/sample_app/spec/integration/layout_links_spec.rb:4:
Finished in 0.060225 seconds
1 example, 1 failure
请帮我解决此错误
答案 0 :(得分:1)
基于这个问题,我觉得你正在关注他的教程的第一版。如果是这样,他用于生成集成测试的命令在第178页,第5.2.1节
rails generate integration_test layout_links
结果是 spec / requests / layout_links_spec.rb
下的文件如果您浏览其应用的源代码,则不会有 spec / integration 文件夹。看看here,看看这是否有帮助。希望如此。
PS:他评论"在RSpec中,集成测试也被称为请求规范 - 这个术语的起源对我来说是模糊的。"
在RSpec docs中,我发现了这一点:请求规范为Rails'提供了一个薄的包装器。集成测试,旨在通过完整堆栈驱动行为,包括路由(由Rails提供)和无存根(由您决定)。