如何使用Hamcrest测试异常场景

时间:2016-11-06 03:37:57

标签: java testing hamcrest

我有一个名为execute()的方法,它执行某些操作并返回一个布尔值。在正常情况下,它返回true,但如果有异常(例如,DataAccessException),它将捕获异常并返回false。

我试图弄清楚如何使用Hamcrest测试引发异常并返回“false”的场景。

所以,这是:

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

1 个答案:

答案 0 :(得分:1)

由于您要取消DataAccessException内部execute()方法,您将无法测试异常,而是可以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);
}