パラメータ化されたテストに名前を付けるために、junitの最新ビルドの新機能を利用したい
私はjavaとscalaで書かれた次の2つのテストを持っていますが、scalaテストはコンパイラエラーを生成します:
エラー:不明な注釈引数名: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"))
}