是否可以在catch-exception
的构造函数中期待异常?无法弄清楚语法。对于我正在写的方法
catchException(instance).method();
然后,例如
assert caughtException() instanceof IndexOutOfBoundsException;
我应该为
写些什么new MyClass();
答案 0 :(得分:2)
使用catch-exception库,recommended way将使用构建器模式:
import com.google.common.base.Supplier; // Google Guava
Supplier<MyClass> builder = new Supplier<MyClass>() {
@Override
public MyClass get() {
return new MyClass();
}
};
verifyException(builder).get();
如果您使用JUnit 4进行单元测试,则可以使用Expected Exceptions:
public class TestClass {
@Test(expected = MyException.class)
public void createObjectTest() {
MyClass object = new MyClass();
}
}
在旧版本的JUnit中,您只需捕获异常:
public class TestClass {
@Test
public void createObjectTest() {
try {
MyClass obj = new MyClass();
fail("An exception should be thrown!");
} catch (MyException e) {
}
}
}