Niv*_*eti 4 java junit mockito powermockito
我正在编写一个 JUnit 测试来验证静态方法 ( MyClass.myMethod()) 从未在方法流中被调用。我尝试做这样的事情:
PowerMockito.verifyStatic(Mockito.never());
MyClass.myMethod(Mockito.any());
Run Code Online (Sandbox Code Playgroud)
这样做时,我收到 UnfinishedVerificationException。如何测试 MyClass.class 在方法执行中没有任何交互?
如果该类尚未被模拟,但您正在尝试验证其静态方法的调用,则会发生 UnfinishedVerificationException。
PowerMockito.mockStatic(MyClass.class);
underTest.testMethod();
PowerMockito.verifyStatic(Mockito.never());
MyClass.myMethod(Mockito.any());
.
.
.
Run Code Online (Sandbox Code Playgroud)
如果流程从未遇到对以下内容的调用,这应该会成功MyClass.myMethod()
小智 5
我无法使用 使其工作Mockito.never()。
我能够使用NoMoreInteractions.
调用生产方法并验证对模拟的静态方法的所有调用后,verifyStatic使用 的实例NoMoreInteractions作为第二个参数进行调用。
mockStatic(MyClassWithStatic.class);
when(MyClassWithStatic.myStaticMethod("foo")).thenReturn(true);
instanceOfClassBeingTested.doIt();
verifyStatic(MyClassWithStatic.class, times(1));
MyClassWithStatic.myStaticMethod("foo");
verifyStatic(MyClassWithStatic.class, new NoMoreInteractions());
MyClassWithStatic.myStaticMethod(Mockito.anyString());
Run Code Online (Sandbox Code Playgroud)
如果被测试的类myStaticMethod使用 以外的任何内容进行调用foo,则测试将失败,并显示一条消息,指出存在未经验证的调用。
| 归档时间: |
|
| 查看次数: |
9927 次 |
| 最近记录: |