带有 PowerMock 的 TestNG DataProvider

Bal*_*ala 1 testng unit-testing mocking powermock

我正在使用 Mockito 和 TestNG 进行单元测试。我有静态方法可以模拟,我尝试了 PowerMock。不幸的是,我无法在 TestNG 中将 DataProvider 与 PowerMock 一起使用。

问题:在使用 PowerMock 时,是否有任何解决方法可以使用 TestNG 的 DataProvider?

Vla*_*aev 7

有一个解决方法。参数化测试方法的所有参数必须声明为 Object 类型。在测试方法主体中,您需要将它们转换为实际类型。

@Test(dataProvider = "data")
public void testMethodThatUsesPowerMock(Object parameter) {
    mockStatic(SomeClass.class);
    DataType param = (DataType) parameter;
    // ... 
}

@DataProvider
public Object[][] data(){
    return new Object[][]{
            new Object[]{new DataType()}
    };
}
Run Code Online (Sandbox Code Playgroud)