2016-03-29 8 views
0

統合テストでコントローラから特定のメソッドを呼び出すにはどうすればよいですか?たとえば、私は大丈夫統合テストの呼び出しコントローラメソッド

get :show, {employee_id: @employee.id} 
    assert_response :success 

を実行しているテスト/コントローラ/ testing.rbファイル の行を次のよう持っていますが、どのように私は統合テストファイルでshowメソッドを呼び出すことができますか?

+0

あなたが直接、コントローラのアクションをヒットする統合テストを使用する必要があるのはなぜ?あなたが上で提供したコントローラテストでは達成できないテストしようとしているものは何ですか? –

答えて

1

コントローラーテストでは、get :showを呼び出すときには、テストクラスと同じ名前のコントローラーのshowアクションを使用する必要があることが慣例によって分かります。

統合テストでは、これを行うことはできません。コントローラのアクションを要求するには、アプリケーションのルートを使用する必要があります。ドキュメントには、get_via_redirect(path, [parameters], [headers])とその他の方法を使用できると記載されています(下記のドキュメントのリンクを参照してください)。

方法のpath引数がパスヘルパーのいずれかになります(アクションuser#showための例は、パスヘルパーuser_path(@user)を使用します)。

ドキュメント:

関連する問題