我有正在請求和發送響應和用於該方法創建JUnit測試用例的函數,但我無法嘲笑道。.getSessionFactory()的getCurrentSession()平齊();如何嘲笑Dao.getSessionFactory()。的getCurrentSession()。平齊()使用powermock和mokito
我的測試類:。
@RunWith(PowerMockRunner.class)
@PrepareForTest({SessionFactory.class,Session.class})
public class ClassNameTest{
private ClassName className;
private ServiceDao mockServiceDao = mock(ServiceDaoImpl.class);
@Test
public void testAbc() {
SessionFactory mockSessionFactory=PowerMockito.mock(SessionFactory.class);
Session mockedSession= PowerMockito.mock(Session.class);
mockServiceDao.setSessionFactory(mockSessionFactory);
Mockito.when(mockSessionFactory.getCurrentSession()).thenReturn(mockedSession);
---rest of the code---
}
同時調試運行它在mDao.getSessionFactory()拋出異常的getCurrentSession()的flush(); 產生的原因:顯示java.lang.NullPointerException
注:我的罐子[R正確的,因爲我試圖與最終和靜態類演示的例子和測試是成功的,但這個項目的創建SessionFactory的模仿對象而不是會議。
爲什麼你不能嘲笑它? –
bcoz getCurrentSession()是最後的方法。 –
這不是一個問題Powermock可以模擬最終方法就好了 –