单元测试 - 如何验证一个类是否与另一个类相等?

时间:2014-03-28 03:09:08

标签: c# unit-testing

我正在尝试使用单元测试验证一个类是否与另一个类相等。 我有一个类:

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>.我做错了什么?还有另一种方法吗?

2 个答案:

答案 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));
}

或只是在类型相等上断言