相关疑难解决方法(0)

TestNG + Mockito + PowerMock - verifyStatic()不起作用

我是新的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)

java testng unit-testing mockito powermock

2
推荐指数
1
解决办法
5773
查看次数

标签 统计

java ×1

mockito ×1

powermock ×1

testng ×1

unit-testing ×1