Mockito验证另一个静态类中的send mail方法

时间:2015-05-21 20:51:44

标签: java mockito

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()?我应该嘲笑哪一堂课?而不是实际发送电子邮件。

1 个答案:

答案 0 :(得分:1)

您无法使用Mockito验证static方法。你必须使用Powermockito来做到这一点。

但是,我建议您重构代码,以便sendEmail方法是对象的成员,可能是依赖项。然后可以模拟此依赖关系,并且可以使用Mockito对sendEmail方法进行存根和验证。必须使用Powermockito通常意味着不好的做法。

可以在以下答案中找到更多信息:Mocking static methods with MockitoWhy is using static helper methods in Java bad?