2010-11-25 11 views
2

私はRailsから始まり、現在はコントローラの統合テストに取り掛かっています。レール統合テストにおけるコントローラ割り当て変数の検証

ユーザーがフォームで特定の値を指定した場合、アクティブレコードによってエラーが生成され、これらのエラーがビューに渡されることを検証しようとしています。

私の問題は、統合テストの中でコントローラに割り当てられた変数(たとえば - @user)にアクセスする方法がわかりません。 http://guides.rubyonrails.org/testing.html#what-to-include-in-your-functional-testsを読むと、@ controller、@ request、@responseなどの変数にアクセスできますが、コントローラが割り当てた変数に簡単にアクセスできることも期待していました。

あいにくのようなもの: * @user * @ controller.user

が実際に動作しません: -/

+0

コードをいくつか表示できますか? – rwilliams

答えて

10

あなたのように変数名の記号でassignsメソッドを使用して、これらの変数にアクセスすることができますperameter。例:

assigns(:user) 

コントローラには@userの値が与えられます。

+0

とてもシンプルな、ありがとう:-) –

3

テストで特定の変数が割り当てられていることを確認するには、テストで次のステートメントを使用します。これは、コントローラでのご@user変数はそれにいくつかの値を持っているか、@user not.If、テストはそれが

assert_not_nil assigns(:user) 

を失敗しそうでない場合は合格することで、いくつかの値を持っている。そして、あなたがに次のコマンドを実行できるかどうかをチェックします端末でテストを実行する

ruby -I test test/integration/your_test_file_name.rb -n test_name 
関連する問題