2009-06-28 10 views
1

Railsアプリケーションでは、私はTest :: Unitの機能テストに失敗しましたが、コンソール上の出力は私にはあまり言いません。Test :: Unitテストが実行されたときに実際に何が起こるかを確認するにはどうすればよいですか?

要求、応答、フラッシュ、セッション、変数セットなどを表示するにはどうすればよいですか?

など失敗したテストを使用p @requestのように...

rake test specific_test_file --verbose 

答えて

3

を働かせることができる提案としてあなたは、あなたのテストケースにプット文を追加することができ、またはRails.logger.debug()への呼び出しをアプリケーションコードに追加し、log/development.logで何が起きているかを追跡します。

1

何かその醜いがありますが、それは

2

テストでは、テストをデバッグするためにユーザーが利用できる一連のリソースにアクセスできます。

p @request 
p @response 
p @controller 
p flash 
p cookie 
p session 

また、あなたの行動はpossibileのように単純であることを覚えていると、すべての特定のアクションの実行は、単一のユニットテストでテストする必要があります。 機能テストは、アクションの実行全体に予約する必要があります。

実際にはどういう意味ですか?あなたの行動で何かがうまくいかず、あなたの行動が3つのモデルメソッドを呼び出すならば、単体テストを見るだけで簡単に問題を切り分けることができます。 1つ(またはそれ以上)の単体テストが失敗した場合、どのメソッドが有罪であるかが分かります。 すべての単体テストが合格した場合、問題はアクション自体ですが、すでに別々にメソッドをテストしているので、デバッグは非常に簡単です。

0

巧みな方法への答えはprypry-navの宝石を使用することです。テスト宝箱にそれらを含めるようにしてください。私も開発グループで使っています。 Pry and Pry Navの素晴らしい点は、コンソールでコードをステップ実行することができることです。コードが実行されているだけでなく、テスト中にコンソールコマンドを入力することもできます。

あなたは、コンソール内でトリガーしたいコードの場所にbinding.pryを入力するだけです。次に、 'step'コマンドを使用して、コードが実行されるたびに1行ずつ移動することができます。

関連する問題