我想利用最新版本的 junit 中的新功能来命名我的参数化测试
我有以下两个用 java & scala 编写的测试,但是 scala 测试会生成编译器错误:
错误:未知注释参数名称:名称 @Parameters(name = "{0}") def data: util.Collection[Array[AnyRef]] = util.Arrays.asList(Array("x"), Array("y" ), 数组("z"))
导致此错误的实现有什么区别?
爪哇
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"))
}