初心者で、Ruby on Railsを学んでいますが、テストを機能させるのに問題があります。rspecとcapybaraを使用しています。問題は、Capybaraがページをレンダリングしていないか、適切なページに到達していないことです。$ railsを実行すると、ブラウザでページが正しく開きます。しかし、save_and_open_pageでテストすると、htmlは空になります。
私のスペック
以下は私の最初のPagesController仕様です。
require 'spec_helper'
describe PagesController do
describe "GET 'home'" do
it "returns http success" do
visit pages_home_path
save_and_open_page #at this point it opens the a blank html page
end
end
end
私のコントローラーの仕様、これは空白のページを開きます。
Pagescontroller仕様の代替構文を試しました。
require 'spec_helper'
describe PagesController do
describe "GET 'home'" do
it "returns http success" do
get :home
response.should render_template('home')
response.should have_content("home") #it fails here
end
end
end
これは、コンソールの障害で次のエラーを示しています。
1)PagesController GET'home'はhttpの成功を返します失敗/エラー:response.should have_content( "home")は "#"にテキスト "home"があると予想されます#。/ spec / controllers / pages_controller_spec.rb:10:in ` 'のブロック(3レベル)
1.91秒で終了1例、1失敗
その他の構成:
spec_helperに次の行を追加しましたが、残りは変更されていません。
require 'capybara/rspec'
*ジェムファイル:*
gem 'rails', '3.1.0'
group :development, :test do
gem 'autotest-rails'
gem 'sqlite3'
gem 'ruby-debug19', :require => 'ruby-debug'
gem 'cucumber-rails', :require => false
gem 'cucumber-rails-training-wheels'
gem 'database_cleaner'
gem 'capybara'
gem 'launchy'
gem 'rspec-rails'
gem 'simplecov'
gem 'rspec-core', '2.8.0'
end
group :assets do
gem 'therubyracer'
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
gem 'haml'
Webratをインストールしておらず、Gemリストにないことを確認しました。ご協力ありがとうございました。