如何用Mockito测试捕获异常并返回false的代码



我知道有几种方法可以使用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,所以method()被迫抛出DataException。

所以,我有两个问题:

  1. 我必须抛出DataException从我的测试代码
  2. 我必须测试方法(),看看它是否捕获NullPointerException并返回false。

编辑。是的,a是一个模拟对象。

可以模拟对象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();
}

相关内容

  • 没有找到相关文章

最新更新