gpt4 book ai didi

java - 在一个参数化类(junit)中创建多个参数集

转载 作者:IT老高 更新时间:2023-10-28 20:39:37 27 4
gpt4 key购买 nike

目前,我必须为要使用多个不同输入测试的每个方法创建一个参数化测试类。有没有办法将它们一起添加到一个文件中?

现在有 CalculatorTestAdd.java 有一组参数,用于检查 Add() 函数是否正常工作。我是否有可能将此集合“连接”到 Add() 函数并创建一个用于 Subtract() 方法的附加集合并将此方法添加到相同的测试类,生成一个名为 CalculatorTest.java?

的文件

最佳答案

这个答案类似于 Tarek 的答案(参数化部分),尽管我认为它更具可扩展性。也解决了你的问题,如果一切都正确,你就不会失败:

@RunWith(Parameterized.class)
public class CalculatorTest {
enum Type {SUBSTRACT, ADD};
@Parameters
public static Collection<Object[]> data(){
return Arrays.asList(new Object[][] {
{Type.SUBSTRACT, 3.0, 2.0, 1.0},
{Type.ADD, 23.0, 5.0, 28.0}
});
}

private Type type;
private Double a, b, expected;

public CalculatorTest(Type type, Double a, Double b, Double expected){
this.type = type;
this.a=a; this.b=b; this.expected=expected;
}

@Test
public void testAdd(){
Assume.assumeTrue(type == Type.ADD);
assertEquals(expected, Calculator.add(a, b));
}

@Test
public void testSubstract(){
Assume.assumeTrue(type == Type.SUBSTRACT);
assertEquals(expected, Calculator.substract(a, b));
}
}

关于java - 在一个参数化类(junit)中创建多个参数集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082004/

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