我正在遵循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
请帮助我解决这个错误
最佳答案
基于这个问题,在我看来,你是在遵循他的教程的第一版。如果是,他用来生成集成测试的命令在第178页第5.2.1节
rails generate integration_test layout_links
结果是spec/requests/layout_links_spec.rb下的文件
如果您浏览他的应用程序的源代码,则没有spec/integration文件夹看一看here这是否有帮助。希望如此。
注:他评论道:“在RSpec中,集成测试也被称为请求规范——这个术语的起源对我来说很模糊。”
在RSpecdocs中,我发现:请求规范为Rails的集成测试提供了一个很薄的包装,并且被设计成驱动整个堆栈的行为,包括路由(由Rails提供)和无存根(由您决定)。
关于ruby-on-rails - 运行RSpec集成测试时,NoMethodError未定义方法“合并”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13112959/