public class SomeclassTobeTested {
public int doSomethingAndSendMail(){
//... doing something
SomeStaticClass.sendEmail(args);
}
}
Public static SomeStaticClass implements Runnable{
public void run(){
sendMail();
}
public static void senMail(args){
//starts the thread
}
}
public class TestSomeClassToBeTested{
}
现在我必须验证sendEmail
是否调用了doSomethingAndSendMail()
?我应该嘲笑哪一堂课?而不是实际发送电子邮件。
答案 0 :(得分:1)
您无法使用Mockito验证static
方法。你必须使用Powermockito来做到这一点。
但是,我建议您重构代码,以便sendEmail
方法是对象的成员,可能是依赖项。然后可以模拟此依赖关系,并且可以使用Mockito对sendEmail
方法进行存根和验证。必须使用Powermockito通常意味着不好的做法。
可以在以下答案中找到更多信息:Mocking static methods with Mockito和Why is using static helper methods in Java bad?