0

我正在嘗試爲我的公司編寫一些單元測試,所以它不可能在sourceCode中更改任何內容,但是在測試中所有內容都可以。 我使用Java8,Spring,Mockito和JUnit4。如何爲單元測試一個服務模擬一個entityManager

問題:有一些服務用的EntityManager,它獲取通過dependencyInjection

@PersistenceContext(unitName = someName) 
private EntityManager em; 

實例我試圖嘲弄這和它注入到我的ClassUnderTest,就像我嘲笑所有其他類但doesn't工作。

@InjectMocks 
@Autowired 
private SomeService testedSomeService; 

There's總是「IllegalStateException異常:無法加載應用上下文中,」運行第一次測試,並使用一個提示的實體管理器之前。 如果我對註釋進行註釋,每個方法都會得到很好的測試(除了方法,使用entityManager)。

有沒有簡單的方法來模擬entityManager?或者我如何在我的測試類中注入一個依賴項?

我很感謝任何幫助!

回答

0

Trythis:

@RunWith(MockitoJUnitRunner.class)

公共類的測試{

@Mock

私人EntityManager的EM;

@Before 公共無效設置(){

MockitoAnnotations.initMocks(this); 
    Mockito.reset(em); 
} 

//你junits

}

相關問題