Инжекция в полевых условиях и модульные испытания - PullRequest
0 голосов
/ 23 января 2020

У меня есть следующий фрагмент кода:

@Component
public class MyBean {
    @Inject
    private Logger logger;

    private Service service;

    @Inject
    public MyBean(Service service) {
        this.service = service;
    }
}  

Я использовал инжектор конструктора, чтобы получить четкий список зависимостей, требуемых MyBean, но я также решил использовать инжекцию поля для регистратора (так как большинство классам потребовался бы этот дополнительный параметр в конструкторе, который кажется неправильным).

Я хочу использовать Mockito для тестирования, и у меня есть следующие опции:

  1. @ InjectMocks
    • Я читал в нескольких местах, чтобы избежать этого
    • Я не могу настроить макет до инициализации моего класса
  2. Внедрить регистратор с Whitebox
    • использование отражения
  3. Использование SpringRunner
    • действительно ли необходимо создавать контекст Spring только для создания экземпляра одного класса для модульного теста?

Есть ли какой-нибудь более чистый способ достижения sh этого?

...