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);