2016-07-01 8 views
2

Michael Hartl's Railsチュートリアルを行っていますが、リスト5.28(緑の代わりにREDテストを取得)では、新しいルートに合わせてテストを変更しています。 (/、/ /ヘルプ/連絡先、程度)すべてのページのRailsチュートリアル静的ページルートtest red(5.28)

エラー:

Rails.application.routes.draw do 
    root 'static_pages#home' 
    get '/help', to: 'static_pages#help' 
    get '/about', to: 'static_pages#about' 
    get '/contact', to: 'static_pages#contact' 
end 

テスト/コントローラ/ static_pages_controller_test.rb routes.rbを

ActionController::UrlGenerationError: No route matches {:action=>"/*", :controller=>"static_pages"} 

require 'test_helper' 

class StaticPagesControllerTest < ActionController::TestCase 
    test "should get home" do 
    get root_path 
    assert_response :success 
    assert_select "title", "Ruby on Rails Tutorial Sample App" 
    end 

    test "should get help" do 
    get help_path 
    assert_response :success 
    assert_select "title", "Help | Ruby on Rails Tutorial Sample App" 
    end 

    test "should get about" do 
    get about_path 
    assert_response :success 
    assert_select "title", "About | Ruby on Rails Tutorial Sample App" 
    end 

    test "should get contact" do 
    get contact_path 
    assert_response :success 
    assert_select "title", "Contact | Ruby on Rails Tutorial Sample App" 
    end 

end 

static_pages_controller.rb

class StaticPagesController < ApplicationController 
    def home 
    end 

    def help 
    end 

    def about 
    end 

    def contact 
    end 

end 

あなたが他のコードを参照する必要がある場合は、私を知ってみましょう!次のように追加しようとしました:それぞれのルートの後に '*'がありますが、無駄です。

ruby​​/railsのバージョンの問題ではあるが、私はIDE上でRails 4.2.2とRuby 2.3.0を使用していますが、 "rails test"(Hartlが使用を指示)キックバック "テストコマンドが見つかりません")。それが大きな問題のヒントなのか、無関係なのかは分かりません。前もって感謝します!

EDIT:これらのパスを使用するリンク(以下のように)が正しくレンダリングされているだけで、テストに失敗しています。

<%= link_to "Home", root_path %> 
<%= link_to "Help", help_path %> 

答えて

3

あなたのテスト/コントローラ/ static_pages_controller_test.rbは問題を抱えています。以下の内容に置き換えることをお勧めします。

require 'test_helper' 

class StaticPagesControllerTest < ActionDispatch::IntegrationTest 

    test "should get home" do 
    get root_path 
    assert_response :success 
    assert_select "title", "Ruby on Rails Tutorial Sample App" 
    end 

    test "should get help" do 
    get help_path 
    assert_response :success 
    assert_select "title", "Help | Ruby on Rails Tutorial Sample App" 
    end 

    test "should get about" do 
    get about_path 
    assert_response :success 
    assert_select "title", "About | Ruby on Rails Tutorial Sample App" 
    end 

    test "should get contact" do 
    get contact_path 
    assert_response :success 
    assert_select "title", "Contact | Ruby on Rails Tutorial Sample App" 
    end 
end 

変更上記のファイル私が提案し、実行してきたよう$ rails testあなたは緑のテストを見ることができます。 Michael Hartl'sがrails tutorialsをレール5.0.0にアップグレードしたので、あなたはあなたのアプリをrails 5.0.0にアップグレードすることをお勧めします。あなたはそれ以上のことを学ぶべきです。アップグレードすれば、より多くのエラーが無くなります。楽しい。

+1

バージョンが問題でした。以前の章では、4.2.2を使用してサンプルアプリケーションを作成するように指示した本の古い版に入っていました。それから何とかいくつかの章が、5.0.0の本の最新版に切り替えられました。どのくらい私はそれを気づかずにそれを介して得たか分からないが、私は最初からアプリを始めた(私はハートルの本の5.0.0版にあったことを確認している)。今はすべてが魅力的なように働いています。間違いなく私が正しいバージョンになっていることを確認する貴重な教訓を学びました...そしてエディション! – user2521295

関連する問題