統合テストでコントローラから特定のメソッドを呼び出すにはどうすればよいですか?たとえば、私は大丈夫統合テストの呼び出しコントローラメソッド
get :show, {employee_id: @employee.id}
assert_response :success
を実行しているテスト/コントローラ/ testing.rbファイル の行を次のよう持っていますが、どのように私は統合テストファイルでshowメソッドを呼び出すことができますか?
統合テストでコントローラから特定のメソッドを呼び出すにはどうすればよいですか?たとえば、私は大丈夫統合テストの呼び出しコントローラメソッド
get :show, {employee_id: @employee.id}
assert_response :success
を実行しているテスト/コントローラ/ testing.rbファイル の行を次のよう持っていますが、どのように私は統合テストファイルでshowメソッドを呼び出すことができますか?
コントローラーテストでは、get :show
を呼び出すときには、テストクラスと同じ名前のコントローラーのshow
アクションを使用する必要があることが慣例によって分かります。
統合テストでは、これを行うことはできません。コントローラのアクションを要求するには、アプリケーションのルートを使用する必要があります。ドキュメントには、get_via_redirect(path, [parameters], [headers])
とその他の方法を使用できると記載されています(下記のドキュメントのリンクを参照してください)。
方法のpath
引数がパスヘルパーのいずれかになります(アクションuser#show
ための例は、パスヘルパーuser_path(@user)
を使用します)。
ドキュメント:
あなたが直接、コントローラのアクションをヒットする統合テストを使用する必要があるのはなぜ?あなたが上で提供したコントローラテストでは達成できないテストしようとしているものは何ですか? –