Я пытаюсь протестировать класс @Controller, где есть список из pojo. Я могу использовать @Autowired в другом классе @RestController для подключения контроллера, но в той же ситуации я не могу сделать это в тесте.
Пользователь. java
@Data //from lombok
public class User {
private String Id;
private String email;
//constructor + getters and setters
}
UserContrell3. java
@Controller
public class UserController {
private List<User> userRepo = new ArrayList<>();
public UserController() {}
public List<User> readAll() {
return userRepo;
}
public void add(User user) {
userRepo.add(user);
}
}
В следующем классе UserResource. java Я могу сделать @Autowired
@RestController
@RequestMapping(UserResource.USER)
public class UserResource {
public static final String USER = "/users";
private UserController userController;
@Autowired
public UserResource(UserController userController) {
this.userController = userController;
}
@GetMapping
public List<User> readAll() {
return userController.readAll();
}
@PostMapping
public void addUser(@RequestBody User user) {
userController.add(user);
}
}
Однако в тестовый класс UserTest. java. Я не могу:
@SpringBootTest(classes = {cat.jhz.Main.MainApp.class})
@TestPropertySource("classpath:test.properties")
public class UserTest {
// @Autowired **//NOT HERE** --> ERROR
private UserController userRepo;
@Autowired **//AND NOT HERE** --> ERROR
public UserResource(UserController userController) {
this.userController = userController;
}
@Test
void testAddUserToUserController() {
...
}
}
Сообщение об ошибке: Не удалось выполнить автоматическое подключение. Бины типа 'UserController' не найдены.
Есть идеи?
Заранее спасибо!