我正在尝试使用单元测试验证一个类是否与另一个类相等。 我有一个类:
public class Class1 : Interface
{
public Interface returnAnInstanceOfInterface()
{
Interface interface = new Class2();
return interface;
}
}
我正试图测试:
[TestMethod()]
public void TestIfReturnAnInstanceOfInterface()
{
Class1 class1 = new Class1();
Interface expected = new Class2();
Assert.AreEqual(expected, class1.returnAnInstanceOfInterface());
}
我的测试失败,但测试结果显示:Assert.AreEqual failed. Expected:<Namespace.Class2>. Actual:<Namespace.Class2>.
我做错了什么?还有另一种方法吗?
答案 0 :(得分:2)
如果要检查实例是否属于同一类,可以这样做。
Assert.AreEqual(expected.GetType(), class1.returnAnInstanceOfInterface().GetType());
如果是MsTest单元测试,也可以使用IsInstanceOfType静态方法。
[TestMethod()]
public void TestIfReturnAnInstanceOfInterface()
{
Class1 class1 = new Class1();
Assert.IsInstanceOfType(class1.returnAnInstanceOfInterface(),typeof(Class2));
}
答案 1 :(得分:1)
使用Assert.IsInstanceOfType方法:
[TestMethod()]
public void TestIfReturnAnInstanceOfInterface()
{
Class1 class1 = new Class1();
Assert.IsInstanceOfType(class1.returnAnInstanceOfInterface(), typeof(Class2));
}
或只是在类型相等上断言