我有一些像
这样的生产代码private bool IsTypeEqual(object theFirstObject, object theSecondObject)
{
if(theFirstObject.GetType()==theSecondObject.GetType())
{
return true;
}
else
{
return false;
}
}
现在我必须为此代码编写单元测试用例。我正在使用NMock来创建 宾语。因此,当我传递两个不同类的对象时,它应该转到其他部分。 但实际上,因为我正在嘲笑这两个对象,所以GetType()返回两个对象的MockObject类型。我该如何解决这个问题。
答案 0 :(得分:0)
你不需要模拟“theFirstObject”或“theSecondObject”。你真的不在乎这些类会发生什么,你只需要断言结果是正确的。
如果我是你,我会传递不同的类型,并断言它是真还是假:
Assert.AreEqual(false, IsTypeEqual("HelloWorld", 192));
Assert.AreEqual(true, IsTypeEqual("Hello", "World"));
答案 1 :(得分:-1)
我希望这段代码可以帮到你。
private bool IsTypeEqual<TMockedType>(object theFirstObject, object theSecondObject)
{
Matcher matcher = Is.TypeOf(typeof(TMockedType));
return matcher.Matches(theFirstObject) && matcher.Matches(theSecondObject);
}