gpt4 book ai didi

java - 具有相同参数的 JUnit 5 多个参数化测试 - 迁移参数化

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:43 24 4
gpt4 key购买 nike

以前在 JUnit4 中你可以这样做:

@RunWith(Parameterized.class)
public class MyTest
{
private final int number;

public MyTest(int number) {
this.play = play;
}

@Test
public void testIsEven() {
assertEquals(true, number % 2 == 0);
}

@Test
public void testIsNotOdd() {
assertEquals(false, number % 2 != 0);
}

@Parameterized.Parameters
public static int[] data() {
return new int[] { 2, 4, 6 }
}
}

这将遍历数组,用每个值实例化 MyTest,然后在每个实例上运行所有测试。查看Parameterized docs了解更多详情。

根据 new docs,现在在 JUnit5 中情况发生了变化你必须像这样编写相同的测试:

public class MyTest {
@ParameterizedTest
@MethodSource("data")
public void testIsEven(int number) {
assertEquals(true, number % 2 == 0);
}

@ParameterizedTest
@MethodSource("data")
public void testIsNotOdd(int number) {
assertEquals(false, number % 2 != 0);
}

public static int[] data() {
return new int[] { 2, 4, 6 }
}
}

您必须为每个单独的测试重复参数和数据源。有没有办法做一些类似于 JUnit4 的事情,其中​​参数化测试对使用不同参数实例化的类的实例起作用?

最佳答案

(评论摘要)

目前(版本 5.3.2 和 5.4.0-M1)不支持对测试类中的所有/多个方法重复使用相同的参数。但这已经是 JUnit 团队正在处理的请求,请参阅

关于java - 具有相同参数的 JUnit 5 多个参数化测试 - 迁移参数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54260954/

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