У меня есть проект загрузки Spring, в котором есть набор модульных тестов, в которых используются @InjectMocks mockito для создания экземпляра тестируемого класса и ввода любых макетов, которые могут присутствовать в нем.@Autowire в сочетании с @InjectMocks
Другими словами, если у меня есть этот
@InjectMocks MyClass MyClass;
Тогда мне не нужно
MyClass MyClass = New MyClass();
или @Autowired MyClass myClass;
До сих пор эта настройка работала нормально.
Однако в последнее время стало необходимо иметь доступ к свойствам весенней загрузки проектов при выполнении тестов. Это означает, что необходимо было использовать run-run SpringBoot внутри тестов, чтобы работать с любыми экземплярами @Autowire (включая те, которые создают экземпляр класса Environment).
Я обнаружил, что если @InjectMocks используется для создания экземпляра класса, то любые экземпляры @Autowired внутри класса не работают (объект, который они должны создать, равен нулю). Это означает отсутствие класса среды и доступ к свойствам Spring.
Вместо я должен добавить @Autowired к @InjectMocks аннотацию
так это
@InjectMocks MyClass MyClass;
становится этим
@Autowired
@InjectMocks MyClass MyCLASS;
Мой вопрос прост. Есть ли что-то не так с этим? Двойной экземпляр myClass или все, что может вызвать сбои