gpt4 book ai didi

java - 在 junit 4.11-SNAPSHOT 中使用@Parameters 注解

转载 作者:行者123 更新时间:2023-11-29 09:12:06 27 4
gpt4 key购买 nike

我想利用最新版本的 junit 中的新功能来命名我的参数化测试

我有以下两个用 java 和 scala 编写的测试,但 scala 测试会生成编译器错误:

error: unknown annotation argument name: name @Parameters(name = "{0}") def data: util.Collection[Array[AnyRef]] = util.Arrays.asList(Array("x"), Array("y"), Array("z"))

导致此错误的实现方式有何不同?

Java

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import java.util.Arrays;
import java.util.Collection;

import static org.junit.Assert.fail;

@RunWith(Parameterized.class)
public class ParameterizedTest {
@Parameters(name = "{0}")
public static Collection<Object[]> data() {
return Arrays.asList(new Object[]{"x"}, new Object[]{"y"}, new Object[]{"z"});
}

@Test
public void foo() {
fail("bar");
}
}

斯卡拉

import java.util
import org.junit.Assert._
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized._

@RunWith(classOf[Parameterized])
class ParameterizedScalaTest {
@Test def foo() {
fail("bar")
}
}

object ParameterizedScalaTest {
@Parameters(name = "{0}") def data: util.Collection[Array[AnyRef]] = util.Arrays.asList(Array("x"), Array("y"), Array("z"))
}

最佳答案

因为@Parameters被定义为一个内部,所以你似乎需要给出全名。

尝试

@Parameters(Parameters.name = "{0}")

至少,这是我在@Parameters 和@Test 的定义中可以观察到的唯一显着差异,并且这是有效的:

@Test(timeout = 10)

关于java - 在 junit 4.11-SNAPSHOT 中使用@Parameters 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764289/

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