Прежде всего, это не модульный тест. Это интеграционный тест.
Почему он не работает?
Вы должны указывать внутри @ContextConfiguration только файлы конфигурации, например. файлы, которые содержат объявления бина.
Как исправить?
Создайте отдельный файл конфигурации, который будет использоваться для этого конкретного интеграционного теста (должен быть в src/test/
)
Если UserService имеет аннотацию @Component
(или один из дочерних элементов) и создан при сканировании компонента:
@ComponentScan({"package where UserService class located"})
public class SomeSpecificIntergarionTestConfig {
}
Если UserService создан в некоторой из java -конфигураций явно:
public class SomeSpecificIntergarionTestConfig {
@Bean
public UserService userService{
return new UserService();
}
}
Затем добавьте этот конфиг в контекстную аннотацию конфигурации:
@ContextConfiguration(classes = {
SomeSpecificIntergarionTestConfig.class,
rest of configs.
})
Важно : чтобы избежать проблем со сканированием компонентов, лучше не отмечать тестовые конфигурации аннотацией @Configuration