【发布时间】:2016-11-10 15:54:02
【问题描述】:
我知道有几种方法可以使用 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;
}
}
为了给它更多的扭曲,method() 被强制抛出 DataException,因为 do() 方法抛出 DataException。
所以,我有两个问题:
- 我必须从我的测试代码中抛出 DataException
- 我必须测试 method() 以查看它是否捕获 NullPointerException 并返回 false。
编辑。是的,a 是一个模拟对象。
【问题讨论】:
-
你班上的
a来自哪里?是注入依赖吗? -
模拟
a.do();以抛出 DE 和 NPE。 Assertmethod在 NPE 上返回 false,在 DE 上抛出 DE。 -
@Compass:我非常感谢确切的语法。