我在視覺工作室上使用nunit測試v2.6.4,並且遇到了一個奇怪的錯誤。當它在兩個單獨的對象(但是相同類型)ObjOne和ObjTwo上被調用時,錯誤發生在「Assert.AreEqual」上。C#nunit聲明錯誤:期望和是一樣的
如何創建這兩個對象:
* ObjOne與有效字段(名字= 「富」,姓氏= 「酒吧」)
* ObjOne的屬性被序列化和存儲創建。
* ObjOne的屬性已被刪除並放入ObjTwo中。
* ObjOne和ObjTwo的字段值相同。
然而,當 「Assert.AreEqual」 叫上這兩個對象,它返回以下錯誤
「
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>
」
我有三個問題。
Assert.AreEqual是否檢查引用是否相同?或者值是一樣的? (3.0的文檔here說,它檢查的值不是參考,但我不確定這個版本的nunit,我找不到文檔)。由於其他因素,我無法升級nunit的版本。
是否Assert.AreEqual檢查兩個對象的公共字段以外的其他值?
有沒有反正我得到這個錯誤的更多信息?
它只是在對象上調用「Equals」。如果你沒有在課堂上重寫它,它會做引用平等。 – juharr
這裏的另一個選擇是聲明類的所有屬性都是相等的。 – juharr