我是新的TestNG和一般的单元测试.我使用的是TestNG 6.9.6和Mockito 1.10.19以及PowerMock 1.6.4.我想验证类中的myMethod()方法是否在MyService内部Util.myStaticMethod使用正确的参数调用静态方法.由于Mockito本身不支持静态方法的验证,因此我使用PowerMock.我的测试类如下所示:
public class MyTest
{
private MyService myService;
@Captor ArgumentCaptor<String> argCaptor;
@BeforeMethod
public void setup()
{
MockitoAnnotations.initMocks( this );
myService = new MyService();
}
@Test
@PrepareForTest(MyService.class)
public void myTest()
{
PowerMockito.mockStatic(Util.class);
myService.myMethod("arg");
PowerMockito.verifyStatic(10);
Util.myStaticMethod(anyString());
}
}
Run Code Online (Sandbox Code Playgroud)
预计此测试将失败,因为仅myMethod调用静态方法Util.myStaticMethod()一次.但是当我运行测试时,无论我传递给什么价值,它总是会通过PowerMockito.verifyStatic().
另外,如果我在这个类中编写另一个测试方法然后运行测试,我会收到以下错误
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at mypackage.MyTest.myTest(MyTest.java:21)
Example of correct verification:
verify(mock).doSomething()
Also, this error might show up because you verify either of: final/private/equals()/hashCode() …Run Code Online (Sandbox Code Playgroud)