Nunitには、2つのオブジェクト間のすべてのプロパティをチェックするアサーションがありますが、これはEqualsをオーバーライドする必要はありませんか?NUnit - すべてのプロパティが等しいかどうかを確認するアサート?
私は現在、リフレクションを使用してオブジェクトのペアごとに個々のプロパティをアサートしています。
Nunitには、2つのオブジェクト間のすべてのプロパティをチェックするアサーションがありますが、これはEqualsをオーバーライドする必要はありませんか?NUnit - すべてのプロパティが等しいかどうかを確認するアサート?
私は現在、リフレクションを使用してオブジェクトのペアごとに個々のプロパティをアサートしています。
私はそこにいるとは思わない。
Assert.AreEqualは、数値以外の型をEqualsで比較します。
Assert.AreSameは、同じオブジェクトを参照しているかどうかを確認します。
Shouldという名前のライブラリを使用して、フレームワークにアグノスティックなアサートを書き込むことができます。また、とても流暢な構文があり、流暢なインターフェースが好きな方にも使えます。私は同じものに関連するブログ記事を持っていました。
http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html
あなたShouldBeEquivalentTo
dto.ShouldBeEquivalentTo(customer);
をしたいと思いますか? – JamesFaix
https://github.com/kbilsted/StatePrinter持つことができる2つのオブジェクトとそこのプロパティは、簡単にユニットテストを書くことを目的とした文字列表現にオブジェクトグラフをダンプするために特別に書かれています。
考える
class A
{
public DateTime X;
public DateTime Y { get; set; }
public string Name;
}
あなたのタイプセーフな方法でできる、との自動補完を使用してビジュアルスタジオは、フィールドを含むか除外します。
var printer = new Stateprinter();
printer.Configuration.Projectionharvester().Exclude<A>(x => x.X, x => x.Y);
var sut = new A { X = DateTime.Now, Name = "Charly" };
var expected = @"new A(){ Name = ""Charly""}";
printer.Assert.PrintIsSame(expected, sut);
私はあなたが私たちがすることができますが、我々がすべき –
Stobor