Verify Static Method Call using PowerMockito 1.6(使用 PowerMockito 1.6 验证静态方法调用)
问题描述
我正在为类似于下面给出的示例的方法编写 JUnit 测试用例:
I am writing JUnit test case for methods similar to sample given below:
Class SampleA{
public static void methodA(){
boolean isSuccessful = methodB();
if(isSuccessful){
SampleB.methodC();
}
}
public static boolean methodB(){
//some logic
return true;
}
}
Class SampleB{
public static void methodC(){
return;
}
}
我在我的测试类中编写了以下测试用例:
I wrote the following test case in my test class:
@Test
public void testMethodA_1(){
PowerMockito.mockStatic(SampleA.class,SampleB.class);
PowerMockito.when(SampleA.methodB()).thenReturn(true);
PowerMockito.doNothing().when(SampleB.class,"methodC");
PowerMockito.doCallRealMethod().when(SampleA.class,"methodA");
SampleA.methodA();
}
现在我想验证是否调用了 Sample B 类的静态方法 C().如何使用 PowerMockito 1.6 实现?我已经尝试了很多东西,但它似乎对我来说并不奏效.任何帮助表示赞赏.
Now I want to verify whether static methodC() of class Sample B is called or not. How can I achieve using PowerMockito 1.6? I have tried many things but it doesn't seems to be working out for me. Any help is appreciated.
推荐答案
就个人而言,我不得不说 PowerMock 等是解决问题的解决方案,如果你的代码还不错的话,你不应该有.在某些情况下,它是必需的,因为框架等使用静态方法会导致代码根本无法测试,但如果是关于您的代码,您应该始终更喜欢重构而不是静态模拟.
Personally, I have to say that PowerMock, etc. is the solution to a problem that you shouldn't have if your code wasn't bad. In some cases, it is required because frameworks, etc. use static methods that lead to code that simply cannot be tested otherwise, but if it's about YOUR code, you should always prefer refactoring instead of static mocking.
无论如何,在 PowerMockito 中进行验证应该不会那么难......
Anyway, verifing that in PowerMockito shouldn't be that hard...
PowerMockito.verifyStatic( Mockito.times(1)); // Verify that the following mock method was called exactly 1 time
SampleB.methodC();
(当然,要使其工作,您必须将 SampleB 添加到 @PrepareForTest
注释并为其调用 mockStatic
.)
(Of course, for this to work you must add SampleB to the @PrepareForTest
annotation and call mockStatic
for it.)
这篇关于使用 PowerMockito 1.6 验证静态方法调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 PowerMockito 1.6 验证静态方法调用


基础教程推荐
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 存储 20 位数字的数据类型 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01