我知道有几种方法可以使用Mockito来测试某个异常是否被抛出。但是,我的问题是我尝试测试的方法不会引发任何异常。相反,我的方法有一个try-catch子句,在catch子句中它只是在捕获异常后返回false。我如何测试我的方法?
boolean method() throws DataException {
try {
a.do();
return true;
} catch(NullPointerException e) {
/* Come down here when a is null */
return false;
}
}
为了给它一点点扭曲,因为do()方法抛出DataException,所以方法()被强制抛出DataException。
所以,我有两个问题:
编辑。是的, a 是一个模拟对象。
答案 0 :(得分:2)
您可以模拟对象a
并抛出NullPointerException
@Test
public void itShouldReturnFalse
when(a.do()).thenThrow(new NullPointerException());
assertFalse(yourClass.method());
}
@Test(expected = DataException.class)
public void itShouldThrowException() {
when(a.do()).thenThrow(new DataException());
yourClass.method();
}