2012-01-15 69 views
1

我正在使用Mockito和TestNG进行单元测试。我有静态方法被嘲笑,我尝试了PowerMock。不幸的是,我无法在TestNG和PowerMock中使用DataProvider。TestNG DataProvider与PowerMock

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

回答

2

有一种解决方法。参数化测试方法的所有参数必须声明为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()} 
    }; 
}