Как проверить метод, который вызывает метод другого класса?

Я довольно новичок в модульном тестировании. Недавно я столкнулся с проблемой, когда я тестирую метод, который делает только одну вещь - он вызывает метод объекта, который является частью класса. Класс, который представляет этот объект, имеет свои собственные модульные тесты.

Я понимаю, что этот метод может измениться во времени, и когда он это сделает, тест должен сообщить мне, если ожидаемый результат его. Но что я могу проверить таким способом?

Мой код:

public class MyClassToBeTested
{
    private CustomType myObject;

    private const myParameter = 2;
    (...)
    public string MyProperty
    {
        get
        {
            return myObject.DoYourStuff(myParameter);
        }
    }
}

2 ответа

Это звучит так, как будто вам нужно перехватить вызов базового объекта и проверить его (или, по крайней мере, убедиться, что вызов сделан). Я бы издевался над этим объектом и вставлял ссылку на него ( Inversion of Control).

Инъецируя объект, вы можете предоставить реальный объект во время развертывания и макет во время тестирования.

Если что-то зависит от чего-то другого. т. е. метод вызывает другой метод, тогда вы должны смоделировать его или смоделировать его поведение.

Другие вопросы по тегам