如何使用catch-exception在构造函数中预期异常



是否有可能在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) { 
        }  
    }  
}  

相关内容

  • 没有找到相关文章

最新更新