Использование интерфейса поставщика Java для облегчения имитационного поведения для модульных тестов

Недавно мне пришлось провести рефакторинг класса [X] и улучшить его модульное тестирование, и при этом я обнаружил, что для полного охвата класса тестами мне нужно было смоделировать поведение 3 различных компонентов класса., Для аргументов ради классов [A], [B] и [C]. Поскольку [A], [B] и [C] были построены в рамках [X], я решил передать Поставщика для каждого из них, что позволило бы модульному тесту издеваться над Поставщиком и обеспечить полное тестовое покрытие класса.

Однако мой коллега предложил вместо этого, чтобы я мог добавить видимые методы получения пакетов для каждого из [A], [B] & [C], чтобы иметь дело со строительством объекта, а затем переопределить их из модульного теста при создании экземпляра [ X] подлежит проверке.

Я вижу, что это устраняет дополнительную сложность добавления реализаций Поставщика, но я чувствую, что это излишне подвергает реализацию [X]. Считается ли один из этих подходов существенно лучше другого? Проект, над которым я работаю, использует Spring, с которым я не слишком знаком, но мне интересно, может ли быть лучшее решение с этим.

У кого-нибудь есть какой-нибудь твердый совет по этому поводу?

0 ответов

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