Avatar ·

如何用Mockito验证方法未被调用?

你好!我正在使用JUnit和Mockito为Java应用编写单元测试。我有一个服务,在某些条件下不应调用依赖对象的方法。例如,如果用户未授权,则不应调用sendEmail()方法。如何在测试中验证这一点?

以下是我的简化代码示例:

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

我为用户活跃的情况编写了测试——使用verify(emailService).sendEmail(...)验证sendEmail()被调用。但如何为用户不活跃的情况编写测试(例如user.isActive()返回false)?