Avatar ·

Diferença entre @Mock e @InjectMocks no Mockito: quando e o que usar?

Olá a todos! Sou um desenvolvedor Java iniciante, escrevendo testes unitários usando Mockito e Spring. Fiquei confuso com as anotações @Mock e @InjectMocks. Li a documentação, mas não entendi completamente qual é a diferença e quando usar cada uma. Digamos que eu tenha um serviço UserService, que usa UserRepository e EmailService. Quero testar o método registerUser() no UserService, que chama o repository para salvar o usuário e depois envia um email. Aqui está um exemplo da minha classe: ```java public class UserService { private UserRepository userRepository; private EmailService emailService; public UserService(UserRepository userRepository, EmailService emailService) { this.userRepository = userRepository; this.emailService = emailService; } public User registerUser(String name, String email) { User user = new User(name, email); userRepository.save(user); emailService.sendWelcomeEmail(user);