Diferencia entre @Mock y @InjectMocks en Mockito: ¿cuándo y qué usar?
¡Hola a todos! Soy un desarrollador Java principiante, escribo unit tests usando Mockito y Spring. Tengo confusión con las anotaciones @Mock y @InjectMocks. Leí la documentación, pero no entendí completamente cuál es la diferencia y cuándo usar cada una.
Supongamos que tengo un servicio UserService que usa UserRepository y EmailService. Quiero probar el método registerUser() en UserService, que llama al repository para guardar el usuario y luego envía un email.
Aquí hay un ejemplo de mi clase:
```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);