gpt4 book ai didi

java - 如何在参数化测试中测试异常?

转载 作者:太空狗 更新时间:2023-10-29 23:01:43 26 4
gpt4 key购买 nike

在 JUnit4 中,您可以通过在一个方法中提供参数集合来编写参数化单元测试,这些参数将传递给测试的构造函数并在另一个方法中进行测试。如果我有一个我希望抛出异常的参数,我该如何指定它?

最佳答案

这就是我如何使用 junit 参数化测试和预期的异常:

@RunWith(Parameterized.class)
public class CalcDivTest {

@Parameter(0)
public int num1;
@Parameter(1)
public int num2;

@Parameter(2)
public int expectedResult;

@Parameter(3)
public Class<? extends Exception> expectedException;
@Parameter(4)
public String expectedExceptionMsg;

@Rule
public ExpectedException thrown = ExpectedException.none();

@Parameters
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][] {
// calculation scenarios:
{ 120, 10, 12, null, null }, // simple div
{ 120, 0, -1, ArithmeticException.class, "/ by zero" }, // div by zero
});

}

@Test
public void testDiv() throws CCalculationException {

//setup expected exception
if (expectedException != null) {
thrown.expect(expectedException);
thrown.expectMessage(expectedExceptionMsg);
}

assertEquals("calculation result is not as", expectedResult, div(num1, num2) );

}

private int div(int a, int b) {
return a/b;
}
}

关于java - 如何在参数化测试中测试异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152539/

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