2011-10-21 3 views
1

私はちょうど大量の既存コードで新しいプロジェクトに取り掛かり始めました。テストは合格していません。私はNunitの人ですから、Xunitの失敗点にすぐには慣れていません。xunit assert.equalバグ?

問題は一種のようなコードである:

fooStringProperty = readSomeFile; 
//later 
fooStringProperty.ShouldBe(expectedContents) 

上記のコードは次のようなエラーで失敗します。

error : Position: First difference is at position 0 
Expected: contentsOfFooStringProperty  
Actual: 
contentsOfFooStringProperty 

基本的に、それは何とかこの改行内になってきたしそこに、私はどのように考えていない。私はコードベース全体でこれらの失敗のトンを持っている、それは他の人のために働くので、私はそれがいくつかのxunitバージョンの問題であるかと思いますか?

編集:これはMacとWindowsの間のCRLFの問題です。問題が解決しました:)

+1

おそらくコードにバグがあります。 ol 'デバッガを取得し、何が起こっているかを見る時間。 xUnitはここで責任を負うことはほとんどありません。 – jason

+0

プラットフォームの違いに慣れていますか? (\ r \ nと\ n行末?)これはどのランタイムバージョン/ OSですか? – sehe

+1

** [選択しないでください](http://pragprog.com/the-pragmatic-programmer/extracts/tips)**(あなたのユーザー名が** [Occam Razor ](http://en.wikipedia.org/wiki/Occam's_razor)**、Oren Mazor :)) – sehe

答えて

0

xUnitが改行を挿入しているとは思われません。まったく別の理由で、さんに不正な改行がある可能性が高いようです。

私はあなたがコードをデバッグし、デバッガの値をチェックすることでこれを診断することをお勧めします。アサーションラインにブレークポイントを設定し、それが正しいかどうかを確認してください。その時点で実際にであると仮定すると、各値を取得/読み込み/計算する際にブレークポイントを設定します。基本的には、予期しない動作を実行するための通常の手順を適用します.xUnitの部分は無視してください。

+0

これは、私の通常の仮定でもありますが、このコードが残りの時間は完全に正常に動作することを除けば、私のマシンでのみ壊れた...クリーンな新しいマシン。 –

+0

@OrenMazor:それはxUnitの失敗にはなりません:)ユニットテストをデバッグできますか?もしそうでなければ、デバッグバイアロギングに頼る必要がありますが、これは少し面倒です。私はそれが何か環境になると分かります。 –

+0

私は完全に同意します。それはほぼ100%環境であることがほぼ保証されています。私はちょうどxunitの多くを知っていないし、第二の意見を求めていたので、ここで私のデバッグと並行して尋ねたいと思っていました。 –

関連する問題