【问题标题】:Unhandled Exception Junit未处理的异常 Junit
【发布时间】:2016-04-13 12:34:04
【问题描述】:

我无法运行我的测试,因为测试在此语句decorator.decorate(new EncoderColumnDecorator()) 中出现红色波浪形错误行,要求我使用 try/catch 或添加 throws。 这是错误信息。

当我已经有一个“预期”属性时,为什么我必须放置 try/catch 或 throws 异常

我的单元测试:

@Test(expected=DecoratorException.class)
    public void testDecorate_exception() {
        decorator.decorate(new EncoderColumnDecorator()); -----Error in this line
    }

待测方法

@Override
    public String decorate(Object arg0) throws DecoratorException {
        try{
                //some code     
            }
        }catch(Exception e){
            throw new DecoratorException();
        }       
        return arg0;
    }

}

【问题讨论】:

  • 该方法抛出异常,要求任何使用它的方法也抛出/尝试...捕获它。这包括 JUnit 方法。

标签: java unit-testing exception junit junit4


【解决方案1】:

这只是代码要成为有效 Java 所必须遵循的规则。如果一个函数调用另一个函数throws,那么它必须要么抛出该异常,要么捕获它。

这有点像变量的静态类型。虽然它可能看起来不方便,但它可以通过不允许歧义来帮助确保正确的代码。让编译器报告任何不一致之处有助于更早地发现问题。

【讨论】:

    猜你喜欢
    • 2013-05-11
    • 2021-12-31
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多