У меня есть метод действия контроллера, который независимо от того, что происходит, всегда возвращает значение null, потому что я хочу, чтобы он перезагрузил одну и ту же страницу. (JSF 2.2).Единица Тестирование метода только с одним результатом
Я успешно использовал mockito, чтобы организовать исполнение вниз по любому пути.
Однако каждый путь в основном вызывает абстрактный метод для добавления сообщения или звонки в стороннюю библиотеку.
Так что я могу утверждать, что он возвращает null, но в этом случае независимо. Я вижу, что эта модель повторяется, поскольку развитие продолжается.
Проблема: я всегда проверяю значение null, несмотря на путь выполнения.
Возможные решения, как я их вижу:
- Я очень зеленый, чтобы Mockito, так что может быть что-то еще я могу сделать , чтобы убедиться, что третья сторона и абстрактные методы называются.
Я чувствую, что что-то, что может быть полезно, но хаки - это флаг состояния , чтобы узнать, какое сообщение было просто добавлено в стек. Хакки, потому что его единственным реальным использованием является то, что он будет использоваться для тестирования, как я вижу в настоящее время.
Переоцените мои методы, в этом случае, если я в этой ситуации, потому что мой код неправильный.
- У меня нет проблем. Оставьте это как есть, и будьте уверены, что я выполняю каждый путь выполнения и проверяя его результат, даже думал, что он тот же.
Вопрос: Учитывая то, что, как известно, в каком направлении Вы бы первым, чтобы попытаться решить проблему проверки внутренних путей выполнения наружно в модульном тесте? Или есть лучшее решение?
Заранее спасибо.
Обновление с примерами кода, чтобы объяснить проблемы проверки, если это маршрут я должен взять с собой:
try {
account.save(); //<-- third party object i don't own, & returns void
addInfoMessage("All Updated!"); //<-- abstract method
} catch (final ResourceException e) { //<-- third party exception
addErrorMessage("Sorry your account could not be updated. ");//<-- abstract method
LOG.error("error msg");
}
...
return null;
Благодарим вас за отзыв, я попытаюсь сделать это локально, попробовать и оценить его. –