【发布时间】:2013-11-04 18:28:10
【问题描述】:
我有以下课程,并且我已经测试了方法 1 并模拟了方法 2 和方法 3。我只测试用例,例如: * 如果方法 2 调用正常,则 ==> 正常 * 如果 method2 抛出 NotFoundException 并且 method3 返回 OK ==> OK * 如果 method2 抛出 NotFoundException 并且 method3 抛出 ServiceException ==> ServiceException 确实被抛出
是否可以模拟方法 method2 和 method3 以仅测试 method1 的功能?我还为方法 2 和方法 3 添加了单独的测试,所以我知道它们可以正常工作。
class ClassUnderTest {
public void method1() {
try {
method2();
} catch (NotFoundException e) {
method3()
}
}
public void method2() throws NotFoundException {
...
}
public void method3() throws ServiceException {
...
}
}
【问题讨论】:
-
应谨慎使用部分模拟。它可能导致糟糕的设计。通常,您应该测试行为,而不是实现。你可以在这里找到更多解释:stackoverflow.com/questions/18430915/…