私はここで他に多くの質問を読んだことがありますが、私の問題は解決できませんでした。私は誰かが私を助けることができるといいですRails4 - テスト - URLGenerationError:経路が一致しない
私はこのメッセージを取得し、私のコントローラのテストを実行する:
ActionController::UrlGenerationError: No route matches
{:action=>"/login", :controller=>"sessions"}
test/controllers/sessions_controller_test.rb:6:in `block in
<class:SessionsControllerTest>'
私rake routes
は、次のようになります。
Prefix Verb URI Pattern Controller#Action
login GET /login(.:format) sessions#new
POST /login(.:format) sessions#create
logout DELETE /logout(.:format) sessions#destroy
私のテスト自体は、このいずれかになります。
test "should get new" do
puts 'debug: ' + login_path
get login_path
assert_response :success
end
プットのデバッグラインプリント:debug: /login
私は私のウェブブラウザでlocalhost:3000/login
に行くとき、それは正しくページをロードし、デバッグ情報は、それが使用されていることサイス:テストが正しくnew
アクションにリダイレクトされていない、代わりに探している理由の任意のアイデアを
controller: sessions
action: new
存在しないアクションの場合/login
?ありがとう!
EDIT:
http://blog.bigbinary.com/2016/04/19/changes-to-test-controllers-in-rails-5.html
(私が使用している)Rails4上のコントローラのテストがActionController::TestCase
get :new
必見を使用しています:ソリューション私は全体の問題を説明し、このリンクを見つけたの下に答えを後
get login_url
の代わりに使用してください(統合テストでは問題ありません)。
なぜ、 'get:new'ではなく' get login_path'を使用していますか? – ArtOfCode
https://www.railstutorial.org/book/basic_loginのコードを試してみました。ありがとう! –
チュートリアルのスタイルがうまくいくかどうかは不思議です。 –