我有一個方法,其中包含以下代碼,它將訂單物件保存到 orderStatus jpa 存盤庫,并且我有一個 try catch 方法,它應該捕獲 JDBC 連接例外。
我如何使用 Junit 和 mockito 測驗這個場景?
try {
orderStatusRepository.save(newOrderStatus);
} catch (JDBCConnectionException ex) {
);
uj5u.com熱心網友回復:
如果代碼的目標是測驗在拋出 JDBCConnectionException 的情況下,它會被捕獲而不是傳播,我建議使用 Mockito 模擬 orderStatusRepository:
when(orderStatusRepository.save(newOrderStatus))
.thenThrow(JDBCConnectionException.class);
然后執行測驗并檢查該方法是否正常回傳以及是否訪問了模擬物件方法(因此引發了例外):
verify(orderStatusRepository).save(newOrderStatus);
請注意,如果save方法不回傳任何內容,您需要以不同的方式模擬它:
doThrow(JDBCConnectionException.class)
.when(orderStatusRepository).save(newOrderStatus);
uj5u.com熱心網友回復:
按照以下代碼測驗您的 JDBC 連接例外代碼。
@MockBean
private OrderStatusRepository orderStatusRepository;
@Test
public void jdbcConnectionExceptionTest() {
try{
when(orderStatusRepository.save(newOrderStatus))
.thenThrow(JDBCConnectionException.class);
orderStatusRepository.save(newOrderStatus);
} catch (Exception e) {
assertTrue(e instanceof JDBCConnectionException);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345838.html
上一篇:JPA列不存在
