【发布时间】:2014-07-08 10:59:00
【问题描述】:
如果我有 2 个这样的课程:
public class A {
public A(boolean bool){
if(bool){
// currently broken
// would throw RuntimeException
}
B.doSomething();
}
}
和
public class B {
public static void doSomething() throws RuntimeException{
throw new RuntimeException();
}
}
我对@987654323@ 类的单元测试将是:
public class ATest {
@Test (expected=RuntimeException)
public void testA(){
new A(true);
}
}
事实上,由于B 类方法也抛出了RuntimeException 并且A 被破坏的事实不会立即可见,因此测试会成功。
是否可以告诉 JUnit 在不使用模拟框架的情况下以某种方式忽略来自 B 的异常?
【问题讨论】:
-
简短回答:不。解释:只有 A 应该是被测单元。 B 是一个依赖项
-
我的猜测:在您的测试中使用 try catch 块可以帮助您,但它会破坏测试(恕我直言)。
-
进行分别测试
A和B的测试。
标签: java unit-testing exception junit4