Avatar ·

Como mockar métodos void no Mockito corretamente?

Olá a todos! Sou um desenvolvedor Java iniciante e estou escrevendo testes unitários com Mockito. Encontrei um problema: não consigo entender como mockar corretamente um método que não retorna nada (void).

Aqui está um exemplo simples. Existe uma classe UserService que envia email através de EmailService:

public class EmailService {
    public void sendEmail(String to, String subject, String body) {
        // envio 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) {
        // alguma lógica de registro
        emailService.sendEmail(email, "Welcome", "Hello!");
    }
}

Estou escrevendo um teste para registerUser e quero verificar se sendEmail foi chamado.