Avatar ·

如何在Mockito中正确模拟(mock)void方法?

大家好!我是一名初级Java开发者,正在使用Mockito编写单元测试。遇到了一个问题:不知道如何正确模拟一个不返回任何内容(void)的方法。

这是一个简单的例子。有一个UserService类,它通过EmailService发送邮件:

public class EmailService {
    public void sendEmail(String to, String subject, String body) {
        // 实际发送邮件
        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) {
        // 一些注册逻辑
        emailService.sendEmail(email, "Welcome", "Hello!");
    }
}

我正在为registerUser编写测试,并想验证sendEmail是否被调用。