[英]I'm getting NoMethodError: undefined method `user' when I run an RSpec test on one of my methods
[英]NoMethodError undefined method 'merge' when running RSpec integration test
我正在遵循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
请帮我解决这个错误
基于这个问题,在我看来,您正在关注他的教程的第1版。 如果是这样,他用来生成集成测试的命令在第178页的5.2.1节。
rails generate integration_test layout_links
结果是spec / requests / layout_links_spec.rb下的文件
如果您浏览他的应用程序的源代码,则没有spec / integration文件夹。 在这里看看,是否有帮助。 希望如此。
PS:他评论说:“在RSpec中,集成测试也称为请求规范 -该术语的起源对我来说是晦涩的。”
在RSpec 文档中 ,我发现了这一点:请求规范为Rails的集成测试提供了一个薄薄的包装,并旨在在整个堆栈中推动行为,包括路由(由Rails提供)而没有存根(由您决定)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.