2016-11-06 89 views
1

我有一個名爲execute()的方法,它執行某些操作並返回一個布爾值。在正常情況下,它返回true,但是如果有異常(例如DataAccessException),它將捕獲異常並返回false。如何使用Hamcrest測試異常場景

我想弄清楚如何測試引發異常的場景,並使用Hamcrest返回「false」。

所以,在這裏,它是:

public boolean execute() { 
    try {  ....... return true;} 
    catch (DataAccessException de) { ....... return false;} 
} 

回答

1

當你正在抑制DataAccessExceptionexecute()方法,你將無法測試例外,而你可以assert方法調用的結果如圖所示如下:

@Test 
public void testExecute() { 
    //Mock the code to throw DataAccessException 
    Mokito.doThrow(new DataAccessException()).when(mockObj).methodName(someMethod); 

    //now call execute method 
    boolean actual = obj.execute(); 
    assertThat(actual, false); 
} 
+0

在catch子句中,我在傳回異常給Log.debug之前返回false。 – softwarelover

+0

順便說一句,我可以使用Mockito拋出新的DataAccessException並聲明false嗎? – softwarelover

+0

是的你是對的,你可以做到.. – developer