私は現在、Michael Hartl による Ruby on Rails チュートリアルを読んでおり、チュートリアルのセクション 3.2.2 で、RSpec を使用してページのタイトルをテストする方法について話しています。私のテスト (彼のチュートリアルに従って自分で書いたもの) は、タイトル テストに失敗し続け (タグを見つけることができますが、タイトルは常に空白の文字列です)、Google で検索すると、render_views
渡す関数を含める必要があることがわかりました。テスト。私の問題は、何を試しても RSpec が for を返すことNoMethodError
ですrender_views
。私が試したこと:
config.render_views
のspec_helper.rb
describe "Static Pages" do render_views ... end
仕様ファイルでdescribe "Static Pages" do RSpec::Rails::ViewRendering.render_views ... end
仕様ファイルで
それらはすべて a を返しますNoMethodError
。
私は彼の Gemfile を正確にフォローしていないので、Ruby と関連する gem のバージョンは次のとおりです。
- ルビー: 1.9.3-p125
- レール: 3.2.9
- rspec: 2.12.0
- rspec-rails: 2.12.0
- カピカブラ: 2.0.1
Windows 7 の RubyMine 4.5.4 で作業しています。ただし、コマンド プロンプトでテストを実行すると、同じエラーが返されます。仕様ファイルは次の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
Myspec_helper.rb
は、でプロジェクトを作成した後にspec_helper.rb
実行を作成することによって自動的に生成され、次の行がブロックに追加されます。rails generate integration_test
--no-test-framework
config
# Fix NoMethodError for method 'visit'
config.include Capybara::DSL
config.include Capybara::RSpecMatchers
EDIT
いくつかのテストの後、rspec 2.12.0とrspec-rails 2.12.0を使用し、render_viewsを使用せずに、カピバラのバージョンを1.1.2に変更することでテストに合格することができました。テストに合格したことは喜ばしいことですが、render_views
メソッドが見つからないという問題はまだ解決されていません。