gpt4 book ai didi

java - JUnit4 : testing for expected exception

转载 作者:行者123 更新时间:2023-12-03 19:04:28 25 4
gpt4 key购买 nike

我正在尝试使用 JUnit4 测试一个抛出异常的方法。这是代码片段:

package unit_tests;

import org.junit.Test;
import calculator.*;

@Test(expected=CalcError.class)
public void testDivision() {
Calculator myCalc = new Calculator(10, 0);
myCalc.setOperation(Calculator.Operation_e.DIVIDE);
myCalc.getResult();
}

问题出在 @Test(expected=CalcError.class) 行:我收到以下错误:

Class<CalcError> cannot be resolved to a type

CalcError 是这样定义的:

package calculator;

public class Calculator {
public class CalcError extends Exception {
// ...
}

public double getResult() throws CalcError {
// ...
}
}

我不明白为什么 CalcError 不是一个类型,即使单元测试在 unit_tests 包中并且计算器在 calculator 包。

我错过了什么?

最佳答案

CalcError是一个内部类,所以需要使用

@Test(expected=Calculator.CalcError.class)

参见 Nested Classes .

编辑:您还需要将测试方法声明为抛出 Calculator.CalcError:

@Test(expected=Calculator.CalcError.class)
public void testDivision() throws Calculator.CalcError {
Calculator myCalc = new Calculator(10, 0);
myCalc.setOperation(Calculator.Operation_e.DIVIDE);
myCalc.getResult();
}

这是为了取悦编译器,因为 Calculator.CalcError 是一个已检查的异常。

关于java - JUnit4 : testing for expected exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com