2012-09-05 4 views
10

私はテストや、モデルやコントローラで通常のようにデバッグに問題があることを初めて知っています。RSpecでよりうまくデバッグできますか?

FactoryGirlを使用して工場からユーザーを作成しましたが、違いがある場合は作成していますが、保存時に検証のため作成メソッドが失敗していることは間違いありません。しかし、私はテスト中にインスタンス化されたモデルをデバッグする方法を知りたいです。

私が試した:

user.inspect 
puts user 
raise user.to_yaml 

(後者の作品を、私のテストの残りの部分の実行を停止し、検証エラーが表示されない - それは唯一の存在または非存在を証明します私がインスタンス化しようとしたモデル)

モデルをエラーとして上げる以外に、テスト中にデバッグ出力はありませんでした。私ができることは、私のテストDBのログをtailすることだけでした。何が起こっているのか見てみましょう。どのような方法を私は後に何を達成するために提案しますか?これは、テストが失敗したときにあなたに素敵なREPL &デバッグインタフェースを与えることPRYと連携https://github.com/banister/plymouth

は、任意の方向のために

答えて

5

は答えを得た、それはかなりのプリントを使用し、(このユーザーがより簡潔にはるかに良いと私の質問を言葉で表現:)

How do I output a variable in a rspec test?

短い答え簡単なことではありません。

頁ユーザー

2

チェックアウトプリマス、ありがとうございました。私はいくつかのプロジェクトでそれを使用しており、テストではわかりにくい問題については非常に便利だとわかりました。

+1

thanks @agmcleodです。プリマスは、少なくともエラーの詳細を表示するのには向いていますが、モデルインスタンス化をデバッグする方法はありません。 – jbnunn

+1

私はプリマスのコンセプトが大好き!私が試してみる前に、誰もが維持されているバージョンを知っていますか?編集: "プライドレスキューを使用して、それはプリマスの精神的な後継者です:" –

0

binding.pryをテストに追加することで、いつでもpryセッションを開封することができます。そうすれば、テストの正確な時点(および必要に応じて他の場所)で利用可能なものにアクセスできます。 pryをRailsに追加する方法の詳細は、official Pry wiki

関連する問題