Недавно мне пришлось провести рефакторинг класса [X] и улучшить его модульное тестирование, и при этом обнаружил, что для полного охвата класса тестами мне нужно было смоделировать поведение 3 различных компонентов.класса.Для аргументов ради классов [A], [B] и [C].Поскольку [A], [B] и [C] были построены в пределах [X], я решил передать Поставщика для каждого из них, что позволит провести модульный тест для проверки Поставщика и обеспечить полное тестовое покрытие класса.
Однако мой коллега предложил вместо этого, чтобы я мог добавить видимые методы получения пакетов для каждого из [A], [B] & [C], чтобы иметь дело со строительством объекта, а затем переопределить их из модульного теста при созданииэкземпляр [X], подлежащий тестированию.
Я вижу, что это устраняет дополнительные сложности, связанные с добавлением реализаций поставщика, но я чувствую, что это излишне подвергает реализацию [X].Считается ли один из этих подходов существенно лучше другого?В проекте, над которым я работаю, используется Spring, с которым я не слишком знаком, но мне интересно, может ли быть лучшее решение с этим.
У кого-нибудь есть какой-нибудь твердый совет по этому поводу?