Cómo verificar que un método no fue llamado con Mockito
¡Hola! Estoy escribiendo pruebas unitarias para una aplicación Java usando JUnit y Mockito. Tengo un servicio que, bajo ciertas condiciones, no debe llamar a un método de un objeto dependiente. Por ejemplo, si el usuario no está autenticado, el método sendEmail() no debe ser llamado. ¿Cómo puedo verificar esto en la prueba?
Aquí hay un ejemplo simplificado de mi código:
public class NotificationService {
private EmailService emailService;
public NotificationService(EmailService emailService) {
this.emailService = emailService;
}
public void processUser(User user) {
if (user.isActive()) {
emailService.sendEmail(user.getEmail(), "Welcome!");
}
}
}
Escribí una prueba para el caso en que el usuario está activo — allí verifico que sendEmail() fue llamado usando verify(emailService).sendEmail(...). Pero, ¿cómo escribo una prueba para el caso en que el usuario NO está activo (por ejemplo, use)?