Avatar ·

Comment vérifier qu'une méthode n'a pas été appelée avec Mockito ?

Bonjour ! J'écris des tests unitaires pour une application Java en utilisant JUnit et Mockito. J'ai un service qui, sous certaines conditions, ne doit pas appeler une méthode sur un objet dépendant. Par exemple, si l'utilisateur n'est pas authentifié, la méthode sendEmail() ne doit pas être appelée. Comment puis-je le vérifier dans le test ?

Voici un exemple simplifié de mon code :

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

J'ai écrit un test pour le cas où l'utilisateur est actif — là je vérifie que sendEmail() est appelé avec verify(emailService).sendEmail(...). Mais comment écrire un test pour le cas où l'utilisateur N'est PAS actif (par exemple, use