Насколько я знаю, есть два способа с тестами и подсказками, с компромиссами:
- Не использовать инъекции полей, используя только инъекции конструктора и присваивание полей в конструкторе для введенных параметров.,Этот подход позволяет очень простое решение для тестирования, просто не используйте внедрение зависимостей в тестах.Но все ваши классы должны иметь возможность создания с новым оператором в тестовых случаях ...
Ps.Конечно, вы можете определить необязательный конструктор и использовать инъекции полей, но это не очень понятное решение.
Создание правильного модуля с инъекционными интерфейсами, связывающего его реализации с каждым тестом или группой похожих тестов.Иногда такой подход занимает много ненужного рабочего времени.
Вы должны разработать свое программное обеспечение для обеспечения тестируемости.Иногда не каждую строку кода в проекте нужно тестировать, иногда не каждый код тестируется, вы должны отделить его от важных частей вашего программного обеспечения, которые требуют тестирования.Если вы разрабатываете свое программное обеспечение с единым принципом ответственности, то написание тестов намного проще ...