автоматически подключенный @components null в модульном тестировании

#spring #junit #junit4 #spring-framework-beans

#spring #junit #junit4 #spring-framework-компоненты

Вопрос:

У меня есть класс:

 @Component
public class B {
    @Autowired
    private A a; 
}
  

и A — это компонент:

 @Component
public class A{}
  

В классе модульного теста BTest:

 public class BTest {
    @Test
    public void testBMethod() {
    }
}
  

Я не использую xml для определения контекста или для выбора компонентов.

Какой самый чистый способ запустить тест?

Комментарии:

1. Используйте внедрение конструктора и просто создайте классы как обычно с помощью mocks.

Ответ №1:

Вам не обязательно использовать Spring для модульных тестов. Для этого может использоватьсяMockito.

 public class BTest {
    @Mock
    private A a;

    @Mock
    private B b;

    @Test
    public void testBMethod() {
    }
}
  

Для получения более подробной информации вы можете проверить https://springframework.guru/mocking-unit-tests-mockito /
и https://dzone.com/articles/use-mockito-mock-autowired