[英]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.