是否有可能在catch-exception
的构造函数中期望异常?我看不懂语法。对于方法,我写
catchException(instance).method();
,然后,例如
assert caughtException() instanceof IndexOutOfBoundsException;
我该怎么写
new MyClass();
?
使用catch-exception库,推荐的方法是使用构建器模式:
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进行单元测试,您可以使用预期异常:
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) {
}
}
}