我目前正在通過Michael Hartl的Ruby on Rails教程,並且在本教程的第3.2.2節中,他將談論如何使用RSpec來測試頁面的標題。我的測試(我自己寫的,跟着他的教程)一直沒有通過標題測試(它可以找到標籤,但標題總是一個空白字符串),並且Google上的一些搜索告訴我,我需要包含函數render_views
以通過測試。我的問題是無論我嘗試什麼,RSpec都會爲render_views
返回一個NoMethodError
。這個事情我已經試過:render_views returned NoMethodError
config.render_views
在spec_helper.rb
describe "Static Pages" do render_views ... end
在規範文件describe "Static Pages" do RSpec::Rails::ViewRendering.render_views ... end
在規範文件
他們全部返回NoMethodError
。
我不是跟隨他的Gemfile準確,因此Ruby版本和相關的寶石:
- 紅寶石:1.9.3-P125
- 導軌:3.2.9
- rspec的: 2.12.0
- RSpec的護欄:2.12.0
- capycabra:2.0.1
我在工作g在RubyMine 4.5.4中,在Windows 7上運行。在命令提示符下運行測試會返回相同的錯誤。該規範文件是static_pages_spec.rb
,位於spec/requests
的代碼在我static_pages_spec.rb
:
require_relative '../spec_helper'
describe "Static Pages" do
#RSpec::Rails::ViewRendering.render_views, returns NoMethodError
#render_views, returns NameError
describe "Home Page" do
it "should have the h1 'Sample App'" do
visit '/static_pages/home'
page.should have_selector('h1', :text => "Sample App")
end
it "should have the title 'Home'" do
visit '/static_pages/home'
page.should have_selector('title', :text => "Ruby on Rails Tutorial Sample App | Home")
end
end
describe "Help Page" do
it "should have the h1 'Help'" do
visit '/static_pages/help'
page.should have_selector('h1', :text => "Help")
end
it "should have the title 'Help'" do
visit '/static_pages/help'
page.should have_selector('title', :text => "Ruby on Rails Tutorial Sample App | Help")
end
end
describe "About Page" do
it "should have the h1 'About Us'" do
visit '/static_pages/about'
page.should have_selector('h1', :text => "About Us")
end
it "should have the title 'About Us'" do
visit '/static_pages/about'
page.should have_selector('title', :text => "Ruby on Rails Tutorial Sample App | About Us")
end
end
end
我spec_helper.rb
是通過創建創建與--no-test-framework
項目運行後rails generate integration_test
自動生成spec_helper.rb
,在添加這些行所述config
塊:
# Fix NoMethodError for method 'visit'
config.include Capybara::DSL
config.include Capybara::RSpecMatchers
編輯 經過一些測試後,我設法通過將水豚版本更改爲1.1.2來通過測試,同時仍使用rspec 2.12.0和rspec-rails 2.12.0和而不是使用render_views。雖然我很高興測試通過了,但它仍然不能解決丟失render_views
方法的問題,如果我嘗試使用它,它仍然會出現問題。
更改文件夾名稱實際上並沒有解決任何問題。我很確定這個問題與rspec有關,而不是實際上的水豚,因爲解決問題的方法來自rspec而不是水豚。 此外,它會是很好的知道解決這個問題不管,因爲一旦我開始構建新的應用程序,可能我反正遇到這樣的問題。 –
您可以在教程中使用默認的替換render_views版本後嘗試:訪問'/ static_pages/home'?或者,您可以複製/粘貼原始問題中的完整spec_helper文件嗎? –