如何测试Java中静态方法的调用次数?
我有一个带有如何测试Java中静态方法的调用次数?,java,unit-testing,mockito,powermockito,Java,Unit Testing,Mockito,Powermockito,我有一个带有methodA()的类,它最终调用一个返回字符串的静态methodB()methodA()可能导致多次调用methodB(),具体取决于场景 我想编写一个单元测试来验证methodA()的一次调用只会导致一次调用methodB() 如何做到这一点?我查看了PowerMockito,但没有找到合适的示例 class classA { public int methodA() { // Do something that invokes a method that in
methodA()
的类,它最终调用一个返回字符串的静态methodB()
methodA()
可能导致多次调用methodB()
,具体取决于场景
我想编写一个单元测试来验证methodA()
的一次调用只会导致一次调用methodB()
如何做到这一点?我查看了PowerMockito,但没有找到合适的示例
class classA {
public int methodA() {
// Do something that invokes a method that in turn calls B.methodB()
}
}
class classB {
public static String methodB(String str) {
// Do something
}
}
验证静态方法调用
Mockito
是不够的。您需要使用PowerMockito
在将PowerMockito
添加到您的项目之前,我建议您考虑更改静态方法,并使用带有实例方法的单例
请看以下内容:保持
static
调用计数?也许powermockito#verifystatic是您所需要的,不使用静态方法,这是一种糟糕的做法。重构你的代码,你不需要这样做。不操纵实例变量的助手方法不应该是静态的吗?谢谢,我正在看PowerMockito
。如果可能的话,你能举个例子吗。是否可以在不将静态方法作为实例方法的情况下执行此操作?请参阅链接。关于这一点有很多问题,你的问题有点重复。有趣的是,verifyStatic(times(n))
对我来说总是正确的,其中n
是任意随机+ve整数。