Avatar ·

Wie überprüft man mit Mockito, dass eine Methode nicht aufgerufen wurde?

Hallo! Ich schreibe Unit-Tests für eine Java-Anwendung mit JUnit und Mockito. Ich habe einen Service, der unter bestimmten Bedingungen keine Methode eines abhängigen Objekts aufrufen soll. Wenn der Benutzer beispielsweise nicht autorisiert ist, sollte die Methode sendEmail() nicht aufgerufen werden. Wie kann ich das im Test überprüfen?

Hier ist ein vereinfachtes Beispiel meines Codes:

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!");
        }
    }
}

Ich habe einen Test für den Fall geschrieben, dass der Benutzer aktiv ist – dort überprüfe ich, dass sendEmail() mit verify(emailService).sendEmail(...) aufgerufen wurde. Aber wie schreibe ich einen Test für den Fall, dass der Benutzer NICHT aktiv ist (z. B. use?