【发布时间】:2010-11-08 06:55:26
【问题描述】:
Assert.Equals() 从不调用
Equals()
operator ==
operator !=
我错过了什么吗?我已经实现了 IEquatable,但在使用 nunit 时仍然不会调用这些方法。
if (objectA != objectB) Assert.Fail(); //doesnt fail
if (!objectA.Equals(objectB)) Assert.Fail(); //doesnt fail
Assert.AreEqual(objectA, objectB); //fail
更新
我应该更清楚。
public class Entity
{
public int ID { get; set; }
}
var objectA = new Entity() { ID = 1 };
var objectB = new Entity() { ID = 1 };
两个独立的实例都具有相同的 ID 我已经实现了所有相关的方法,以使其适用于 ==、!= 和 Equals,但 nunit AreSame 和 AreEqual 仍然无法调用这些方法。
【问题讨论】:
-
我也有同样的问题。现在我正在使用 Assert.IsTrue(objectA.Equals(objectB));
-
我有同样的问题,我已经确定如果我比较的对象是不相同的引用,它会起作用。即创建 2 个具有不同属性的对象,除了相等比较的属性,然后 Assert.Equals 工作......如果它正在比较相同的引用(肯定是相等的),那么它会失败!因为不相等(NUnit 2.5)
-
你在找
Assert.AreEqual(objA, objB);
标签: nunit