2012-01-15 102 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()} 
    }; 
}