我有一个名为execute()的方法,它执行某些操作并返回一个布尔值。在正常情况下,它返回true,但如果有异常(例如,DataAccessException),它将捕获异常并返回false。
我试图弄清楚如何使用Hamcrest测试引发异常并返回“false”的场景。
所以,这是:
public boolean execute() {
try { ....... return true;}
catch (DataAccessException de) { ....... return false;}
}
答案 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);
}