我有以下代碼:我怎麼能寫單元測試的堅持和沖洗例外
try {
em.persist(myObject);
em.flush();
}
catch (Exception e) {
System.out.println("An Exception occur when trying to persist and flush");
}
在測試我有模仿我的EntityManager用的Mockito:
@Mock
EntityManager mockEm;
但作爲堅持和沖洗是無效的方法,我不能寫類似的東西:
when(mockEm.persist(anObject).then(doSomeThing);
我如何寫單元測試(與JUnit)莫ck em.persist和em.flush爲了測試這兩種情況有無異常? 謝謝。
此答案不能簡單回答。你想測試什麼 - 在**'persist()/ flush()'裏面發生了什麼** - 或者你只是想確認這兩個方法是在em對象上調用的嗎? – GhostCat
我想測試何時持續或刷新返回像EntityExistException或PersistenceException異常。在這種情況下,我的代碼將捕獲異常,並且我想測試該代碼確實捕獲並執行相應的代碼。 –
然後,你可能想*模擬*這個em對象,並在調用這些方法時拋出一個異常。 – GhostCat