-1

我有一些生产代码,例如

private bool IsTypeEqual(object theFirstObject, object theSecondObject)
{
       if(theFirstObject.GetType()==theSecondObject.GetType())
       {
               return true;
       }
       else
       {
                return false;
       }
}

现在我必须为此代码编写单元测试用例。我正在使用 NMock 创建对象。因此,当我传递两个不同类的对象时,它应该转到其他部分。但实际上,因为我正在模拟这两个对象,所以 GetType() 返回两个对象的 MockObject 类型。我怎么解决这个问题。

4

2 回答 2

0

您不需要模拟“theFirstObject”或“theSecondObject”。你真的不在乎这些类会发生什么,你只需要断言结果是正确的。

如果我是你,我会传入不同的类型并断言它是真/假:

Assert.AreEqual(false, IsTypeEqual("HelloWorld", 192));

Assert.AreEqual(true, IsTypeEqual("Hello", "World"));
于 2009-09-24T15:26:12.537 回答
-1

我希望这段代码对你有帮助。

private bool IsTypeEqual<TMockedType>(object theFirstObject, object theSecondObject)
{
    Matcher matcher = Is.TypeOf(typeof(TMockedType));

    return matcher.Matches(theFirstObject) && matcher.Matches(theSecondObject);
}
于 2009-07-22T12:06:53.973 回答