Как смоделировать метод GetType() в NMock
У меня есть некоторый производственный код, например
private bool IsTypeEqual(object theFirstObject, object theSecondObject)
{
if(theFirstObject.GetType()==theSecondObject.GetType())
{
return true;
}
else
{
return false;
}
}
Теперь я должен написать тестовый блок для этого кода. Я использую NMock для создания объекта. Поэтому, когда я передаю объект двух разных классов, он должен перейти к другой части. Но на самом деле, когда я издеваюсь над обоими объектами, GetType() возвращает тип MockObject для обоих объектов. Как я могу решить эту проблему.
2 ответа
Вам не нужно издеваться над "theFirstObject" или "theSecondObject". Вы действительно не заботитесь о том, что происходит с этими классами, вам просто нужно утверждать, что результат правильный.
Если бы я был тобой, я бы перешел в другой тип и утверждал, правда ли это / ложно
Assert.AreEqual(false, IsTypeEqual("HelloWorld", 192));
Assert.AreEqual(true, IsTypeEqual("Hello", "World"));
Я надеюсь, что этот код поможет вам.
private bool IsTypeEqual<TMockedType>(object theFirstObject, object theSecondObject)
{
Matcher matcher = Is.TypeOf(typeof(TMockedType));
return matcher.Matches(theFirstObject) && matcher.Matches(theSecondObject);
}