【发布时间】:2015-12-31 09:40:32
【问题描述】:
在School 类中,我有一个start() 函数,它调用另一个函数doTask():
pubic class School {
public void start() {
try {
doTask();
} catch(RuntimeException e) {
handleException();
}
}
private void doTask() {
//Code which might throw RuntimeException
}
}
我想用RuntimeException 对start() 进行单元测试:
@Test
public void testStartWithException() {
// How can I mock/stub mySchool.start() to throw RuntimeException?
mySchool.start();
}
我的实现代码不容易抛出RuntimeException,如何让测试代码模拟一个RuntimeException并抛出它?
(除了纯JUnit,我正在考虑使用Mockito,但不知道如何抛出RuntimeException)
【问题讨论】:
-
为什么doTask()会抛出异常?如果是因为输入错误,只需在测试中使用错误输入即可。如果是因为与出现意外问题的服务交互,则需要模拟或存根该服务,使其抛出异常来模拟问题。
标签: java unit-testing junit mockito