Как смоделировать метод 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);
}
Другие вопросы по тегам