Avatar ·

¿Cómo mockear correctamente métodos void en Mockito?

¡Hola a todos! Soy un desarrollador Java principiante, escribo unit tests usando Mockito. Me encontré con un problema: no puedo entender cómo mockear correctamente un método que no devuelve nada (void).

Aquí hay un ejemplo simple. Hay una clase UserService que envía un email a través de EmailService:

public class EmailService {
    public void sendEmail(String to, String subject, String body) {
        // envío real de email
        System.out.println("Email sent to " + to);
    }
}

public class UserService {
    private final EmailService emailService;
    
    public UserService(EmailService emailService) {
        this.emailService = emailService;
    }
    
    public void registerUser(String email) {
        // alguna lógica de registro
        emailService.sendEmail(email, "Welcome", "Hello!");
    }
}

Estoy escribiendo un test para registerUser y quiero verificar que sendEmail fue llamado.