正しい予想される結果で失敗しますNET 3.5の下で、NUnit 2.6.3を使用しています。これは.NET 3.5で使用できる最新のバージョンだと思います。このように単体テストが失敗する理由はありますか?これを修正する方法はありますか?NUnitのユニットテストは、NUnitのユニットテストを実行する場合、私は、次の出力を受信
答えて
オーバーライド(、OBJ OBJ b)はNUnitのAreEqualでこの欲求不満を解消等しいあなたはObj_AがObj_Bに実際に等しいことを保証するために、すべてのデータをチェックしたいと思うもちろん
public override bool Equals(object obj)
{
return obj.GetType() == GetType();
}
。
これはおそらく、あなたがAssert.AreEqual(ExpectedAddress、ActualAddress)のようなことをしていたためです。 Assert.AreEqual(ExpectedAddress.Name、ActualAddress.Name)など(チェックする必要がない場合もあります。そうでなければ、Equalsオーバーライドは明らかに移動方法です) –
いつものように、それは文脈に依存していますが、a.Equals(b)は、等価性が奇妙な実装のような型の音だけをチェックし、したがって、このテストに関連する唯一のものは、アドレスが返されるかどうかを確認することです。あなたはそれが正しい住所かどうか気にしませんか? – prgmtc
右。私は簡単にすべてのプロパティをチェックすることができますが、私はちょうどタイプが適切に戻ってきていることを確認したい。さらに、私がこれを理解するまでには、私は机を裏返す準備ができていたので、基本的な実装は、私がアプリケーションを稼働させていることを示すために必要なものでした。 – Ingenioushax
通常、このタイプのエラーはNUnitの奇妙なものではなく、同じ参照ではないオブジェクトをチェックしているためです。あなたのテストを貼り付けると、何が起こっているのかがわかりますが、あなたの場合は、例えばモックから戻ってくるオブジェクトを主張すると修正されます。例えば:私はアドレスの特定のプロパティ値をテストする場合を除き、私は通常、対等を行う方法です
[Test]
public void MyTest()
{
//Arrange
const string id = "the id"
var address = new Address{Id = id};
var repository = new Mock<IRepository>(); //Using Moq here
repository.Setup(r => r.Get(id))
.Returns(address);
var sut = new AddressManager(repository.Object);
//Act
var returnedAddress = sut.GetAddress(id);
//Assert
repository.VerifyAll(); //Checks you're calling the repository with the "id"
Assert.That(returnedAddress, Is.EqualTo(address)); // This will pass because the reference is the same
}
、テストのしかし、そのタイプは、マッパーまたは類似のようなクラスに記載されています。私はEquals btwをオーバーライドしたことはありません。
希望します。
これは本当に素晴らしいことです。時間を割いていただきありがとうございます。残念ながら、私はテストケースを変更することができませんでしたので、 'Is.EqualTo(object) 'を追加することはオプションにはなりませんでした。 :/これは素晴らしいですが、私はそれをブックマークします。 :D – Ingenioushax
- 1. Resharper(NUnit)ユニットテストの入力ファイル
- 2. Resharper - ビルドでNUnitユニットテストを実行
- 3. NUnitで別のappdomainでユニットテストを実行する
- 4. のVisual Studio 2008のユニットテストとNUnitの
- 5. NUnitとコンソールを使ったユニットテスト
- 6. は、NUnitのテキスト出力
- 7. Nunitを使用したユニットテストでエラーが発生する
- 8. ユニットテストのためのNUnitとMSTestの切り替え
- 9. Visual Studioユニットテスト - Nunitのような複数のケース
- 10. 次のテストで[ValueSourceAttribute] Nunitテストの出力を使用します。
- 11. resharperを使用してNUnitユニットテストをデバッグする方法はありますか?
- 12. 返信は、私は、次のユニットテストを持って死んでレターボックス
- 13. CruiseControl、nUnit、nAnt、およびASP.net MVCと統合されたJavascriptの自動ユニットテストMVC
- 14. NUnit実行テストのベストプラクティス?
- 15. シングルスレッドモードでnunit GUIを実行
- 16. GallioでNUnitテストを実行
- 17. どのように私はNUnitののReSharperの実行ログが
- 18. ユニットテストは、これは私のユニットテストでSystem.ServiceModel.FaultException
- 19. NUnit 3.2.0コンソールランナーSystem.NullReferenceException/domain = multipleの場合
- 20. NUnitアドインでTeamCity 6.5.XでNUnitテストを実行
- 21. Nunitで複数のテストDLLを実行
- 22. VisualStudioで実行されるユニットテストの出力
- 23. MoQとNUnitを使用してWebAPI 2でExceptionHandlerのユニットテストを書く方法
- 24. NUnitからC++コードを実行する
- 25. Visual Studio 2010でNUnitを実行する
- 26. 実行するNUnitテストを指定
- 27. ユニットテストは、Antタスクから実行する場合にのみ失敗します
- 28. NUnitによる機能ファイルの実行
- 29. NUnitのテストは
- 30. NUnit TestFixture実行質問
テストを表示せずに出力を表示したり、これらのクラスが何であるかは、誰も助けてくれません。あなたは計算機を持っていると言っているのですが、それは答えが5であると言われているので働いていません。入力が何であるかわからなければ、正しい出力が何かを知ることができません。 –
他の人の参考にしてください。テストするクラスのEquals演算子をオーバーライドする必要があります。私の単純な実装は 'public override bool Equals(object obj){return obj.GetType()== GetType();でした。 } '。 – Ingenioushax