Test::Unit と shoulda を使用してコントローラーをテストしています。
コントローラーをテストしているだけなので、ビューをレンダリングしたくありません。
ビューがレンダリングされるときにいくつかのエラーがスローされますが、コントローラーが正しいため、テストは失敗しないはずです。
私のテストから、テンプレート/ビューのレンダリングを無効にする方法はありますか?
rSpec はそのように機能すると聞きました。
Test::Unit と shoulda を使用してコントローラーをテストしています。
コントローラーをテストしているだけなので、ビューをレンダリングしたくありません。
ビューがレンダリングされるときにいくつかのエラーがスローされますが、コントローラーが正しいため、テストは失敗しないはずです。
私のテストから、テンプレート/ビューのレンダリングを無効にする方法はありますか?
rSpec はそのように機能すると聞きました。
Mocha を使用している場合は、簡単です。これを個々のテストまたはセットアップ メソッドに追加します。
@controller.expects(:render)
そうでない場合は、Mocha を使用してください。
gem install mocha
次に、test_helper.rbで
require 'mocha'
テストで実際にビューが表示されることはありません。失敗したテスト コードを投稿できますか? コントローラー (機能) テストは、アクションが呼び出されたときに特定のアクションが発生していることのみを確認する必要があります。つまり、正しいビューをレンダリングするか、別のアクションにリダイレクトするかを確認する必要があります。ビューのフラッシュやその他の変数の設定を確認することもできます。これはあなたがテストしているタイプですか?
shoulda ドキュメントから取得した get リクエストを使用して show アクションをテストする良い例を次に示します。
class UsersControllerTest < Test::Unit::TestCase
context "on GET to :show" do
setup { get :show, :id => 1 }
should_assign_to :user
should_respond_with :success
should_render_template :show
should_not_set_the_flash
should "do something else really cool" do
assert_equal 1, assigns(:user).id
end
end
end
たぶん、かなり良いレールガイドも見てください。