2016-01-06 67 views
5

我有一個基於Spring的應用程序,並且正在對它進行單元測試。我正在使用TestNG進行單元測試。對於我的測試,我需要利用PowerMockito來模擬一些靜態方法。我還需要使用測試彈簧配置文件來進行我的單元測試。TestNG + Spring + Power mock單元測試

我無法編寫我的單元測試,結合所有三個測試,即TestNg,PowerMock和Spring。

我可以通過擴展AbstractTestNGSpringContextTests類來組合TestNG和Spring,但不能模擬靜態方法,而是執行實際的靜態方法。如下所示:

@PrepareForTest(MyUtils.class) 
@ContextConfiguration(locations = { "classpath:config/test-context.xml"}) 
public class MyImplTest extends AbstractTestNGSpringContextTests{ 

..... 

} 

我可以通過擴展PowerMockTestCase類將TestNG和PowerMockito結合起來。但是然後測試彈簧配置文件沒有解決。喜歡的東西下面:

@PrepareForTest(MyUtils.class) 
@ContextConfiguration(locations = { "classpath:config/test-context.xml"}) 
public class MyImplTest extends PowerMockTestCase{ 

..... 

} 

有什麼辦法,我寫我的單元測試結合所有三個,即TestNG的,PowerMockito和Spring上下文?

回答

0

而不是擴展PowerMockTestCase,您是否試過使用下面的方法使用PowerMockObjectFactory?那麼你可以擴展AbstractTestNGSpringContextTests

@ObjectFactory 
public IObjectFactory getObjectFactory() { 
    return new org.powermock.modules.testng.PowerMockObjectFactory(); 
} 

這由Powermock GitHub docs建議。

+0

有人有解決這個問題嗎? – Sujeet