2012-02-04 2 views
0

Railsチュートリアルを読み進めてください。私たちは、テスト環境を実行して、私たちのページに表示させたいものが作っていることを確認しています。 pages_controller_spec.rbファイルを使用してこれを行います。これは3つの引数のうちの1つです:rspecテストでエラーが発生しました。

3つのテストはすべて同じです。コマンドラインからrspec spec /を実行すると、3つのテストすべてでこのエラーが発生します。

1)PagesController GET 'home'には正しいタイトルが必要です ←[31mFailure/Error: ←[0メートル←[31mresponse.shouldのhave_selector( "タイトル"、←[0メートル ←[31mNoMethodError:←[0メートル ←[31mundefined方法has_selector?' for #<ActionController::TestResponse:0x4d71bd8>←[0m ←[36m # ./spec/controllers/pages_controller_spec.rb:13:inブロック(3段階) 0メートル

[←」であなたが見ることができるように私はhas_selectorという名前のものを使用していませんが、has_selectorはどこから来ていますか?誰かがそれを修正する方法を知っていますか?私の例がビデオと一致することを確認するために2日間コードを繰り返し確認しました。テキストがで確認されていますrspecは実際のWebページでは同じです。私は、サーバーを起動した後もページが正しく表示されることを意味します。だから私は全く手がかりがない。私が答えに一番近かったのは、別のフォーラムで、誰かが最初の「記述」の後に「render_views」を先頭に入れるのを忘れていたと言いました。それもダブルチェックして、私はそれが必要な場所に持ってきました。 悲しいプログラマ

(編集)他の人と話した後、彼らは方法がルビーによってロードされていないように見えると言った。これは、私はそれがshould has_selectorと言っていますので、あなたの質問には、タイプミスがあるとし

答えて

0

「定義されていない方法」についての出力に行を与えられた私には意味があります。しかし、あなたの仕様がshould have_selectorと言っているならば、あなたの問題はRSpecにそのようなマッチャーがないことです。

あなたはwebratかcapybaraのようなパッケージを使用している前提とし、いくつかのサンプルコードを見てすることができます。これらの宝石は、特定の種類のテストをサポートするためにrspecとともに動作し、それぞれがhas_selector?メソッド(この仕様はshould have_selectorになります)が付属しています。

私はカピバラをお勧めします。それがインストールされると、次のことができます(コンテンツの代わりにcapybara expects :textに注意してください):

response.should have_selector("title", 
    :text => "Ruby on Rails Tutorial Sample App | Home") 
+0

良いアイデア。カピバラを取得し、出力を実行した後、このに変更: 「1)をPagesController GET 'ホーム' は右のタイトル ←[31mFailure /エラーれている必要があります。←[0メートル←[31mresponse.shouldのhave_selector( "タイトル"、← [0m ←[31mexpected css "title"何かを返す←[0m ←[36m#./spec/controllers/pages_controller_spec.rb:13:inブロック(3レベル) ← [0メートル」それでも CSSの 『タイトル』は何かを返すように期待していることを言っている理由がわからない私はつもりいくつかのコードをいじり続けてる何で起こる参照してください:。。。テキスト事を –

+0

は、[OK]を、私はうんざりですこのプロジェクトを振り返ってみると、私は矛盾がたくさんあります。それがスクリーンキャストとtryiを使って得たものですスクリーンキャストの更新された本を介してバグを把握する。 (マイケル・ハートル)今度は本で始めるつもりです。ご迷惑をおかけして、時間を無駄にしてしまいます。私は最初にこれをしていたはずです。 (私がかなり余分に学んだとしても) –

関連する問題