Как проверить метод, который вызывает метод другого класса?
Я довольно новичок в модульном тестировании. Недавно я столкнулся с проблемой, когда я тестирую метод, который делает только одну вещь - он вызывает метод объекта, который является частью класса. Класс, который представляет этот объект, имеет свои собственные модульные тесты.
Я понимаю, что этот метод может измениться во времени, и когда он это сделает, тест должен сообщить мне, если ожидаемый результат его. Но что я могу проверить таким способом?
Мой код:
public class MyClassToBeTested
{
private CustomType myObject;
private const myParameter = 2;
(...)
public string MyProperty
{
get
{
return myObject.DoYourStuff(myParameter);
}
}
}
2 ответа
Это звучит так, как будто вам нужно перехватить вызов базового объекта и проверить его (или, по крайней мере, убедиться, что вызов сделан). Я бы издевался над этим объектом и вставлял ссылку на него ( Inversion of Control).
Инъецируя объект, вы можете предоставить реальный объект во время развертывания и макет во время тестирования.
Если что-то зависит от чего-то другого. т. е. метод вызывает другой метод, тогда вы должны смоделировать его или смоделировать его поведение.