4

私が書いた.netコードの単体テストを書いています。

私は次のようなコードを書くことに慣れています:

int expected = 10;
int actual = multiplyByTwo(5);
Assert.AreEqual(expected, actual);

引数が整数の場合、コードに何を期待するかは明らかです。

渡された引数がオブジェクトの場合、コードは何をしますか?

という名前のカスタム クラスを作成した場合、タイプ のオブジェクトでパスと失敗をMyClass制御するにはどうすればよいでしょうか。Assert.AreEqualMyClass

4

3 に答える 3

0

オブジェクトがシリアライズ可能な場合は、それらをシリアライズしてから、シリアライズされたバージョンを比較できます。

このXmlSerialize拡張メソッドを使用して、シリアル化を処理できます。

たとえば、クラスのインスタンスを比較する場合Cat、次の疑似コードはこれを示しています

var expected = GetExpectedInstance(); // returns the expected result
var actual = CallMethodUnderTest(); // get the actual result

var e = expected.XmlSerialize<Cat>();
var a = actual.XmlSerialize<Cat>();

Assert.AreEqual(e, a);
于 2014-12-09T12:17:00.317 に答える