У меня есть API класса, который имеет полное покрытие кода и использует DI для макетирования всей логики в функции основного класса (Job.Run), которая выполняет всю работу.
Я обнаружил ошибку в работегде мы не выполняли некоторую проверку для одного из полей ввода данных.
Итак, я добавил функцию-заглушку под названием ValidateFoo () ... Написал модульный тест для этой функции, чтобы ожидать исключение JobFailedException, запустил тест -он потерпел неудачу, очевидно, потому что эта функция была пустой.Я добавил логику проверки, и теперь тест проходит.
Отлично, теперь мы знаем, что проверка работает.Проблема в том, как мне написать тест, чтобы убедиться, что ValidateFoo () действительно вызывается из Job.Run ()?ValidateFoo () - это закрытый метод класса Job, так что это не интерфейс ...
Есть ли способ сделать это с NMock2.0?Я знаю, что TypeMock поддерживает подделки не интерфейсных типов.Но менять макеты библиотек прямо сейчас не вариант.На этом этапе, если NMock не может его поддерживать, я просто добавлю вызов ValidateFoo () в метод Run () и протестирую его вручную - что, очевидно, я бы предпочел не делать, учитывая, что мой метод Job.Run () имеет100% охват прямо сейчас.Любой совет?Большое спасибо, это ценится.
РЕДАКТИРОВАТЬ: другой вариант, который я имею в виду, - это просто создать интеграционный тест для моей функциональности Job.Run (внедряя в него истинные реализации составного кода).объекты вместо издевательств).Я введу неверное значение для этого поля и проверим, что задание не выполнено.Это работает и охватывает мой тест - но на самом деле это не модульный тест, а интеграционный тест, который проверяет одну функциональную единицу .... хм ..
РЕДАКТИРОВАТЬ2: Есть ли в любом случаеделать это?У кого-нибудь есть идеи?Может быть, TypeMock - или лучший дизайн?