Visual Studioでnunit testing v2.6.4を使用していますが、私は奇妙なバグを発見しました。このバグは、2つの別個のオブジェクト(ただし同じ型のオブジェクト)、ObjOneおよびObjTwoに対して呼び出されたときに、 "Assert.AreEqual"で発生します。これらの2つのオブジェクトが作成される方法C#nunitアサーションエラー:expectとwasは同じです
:
* ObjOneは、有効なフィールド(firstNameの= "foo" という、lastNameの= "バー")を使用して作成され
* ObjOneの属性がシリアライズして格納されています。
* ObjOneの属性は非標準化され、ObjTwoに入れられます。
* ObjOneとObjTwoのフィールド値は同じです。
しかし "Assert.AreEqualは" これら二つのオブジェクトで呼び出されたとき、それは私が3つの質問を持っているエラー
"
An exception of type 'NUnit.Framework.AssertionException' occurred in nunit.framework.dll but was not handled in user code
Additional information: Expected: <NameSpace.TypeOfObjOneAndTwo>
But was: <NameSpace.TypeOfObjOneAndTwo>
"
次戻ります。
参照が同じかどうかを確認しますか?または値が同じですか? (3.0のドキュメント、hereは、リファレンスではない値をチェックしていますが、このバージョンのnunitではわかりません。ドキュメントは見つかりませんでした)。私は他の要因のために、nunitのバージョンをアップグレードすることはできません。
Assert.AreEqualは、2つのオブジェクトのパブリックフィールド以外の値をチェックしますか?
このエラーの詳細を知りたいのですが? (編集
TypeOfObjOneAndTwo
後)
これは単にオブジェクトに対して「等しい」を呼び出します。クラスでオーバーライドされていない場合は、参照の平等を実行します。 – juharr
ここでの別のオプションは、クラスのすべてのプロパティが等しいことをアサートすることです。 – juharr