【发布时间】:2019-10-11 13:52:16
【问题描述】:
我正在使用Parameterized 类创建一个测试用例以提高可伸缩性。我有类似以下的内容...
@RunWith(Parameterized.class)
public class Test
{
private final translator;
@Parameterized.Parameters(name = "translate {0}")
public static Collection parameters()
{
return Arrays.asList(new Object[][] {
{ Translate.EN },
{ Translate.FR }
});
}
public Test1(Translate translate)
{
this.translator = new TranslatorImpl(translate);
...
...
我有一个 Linter,它为以下部分引发错误...
return Arrays.asList(new Object[][] {
{ Translate.EN },
{ Translate.FR }
});
上面写着……
创建一个数组只是为了将它作为可变参数 (...) 参数传递是没有意义的;可变参数是一个数组。只需直接传递元素。它们将自动合并到一个数组中。顺便传递一个预期 Object ... 的数组会使意图模棱两可:该数组应该是一个对象还是一组对象?
我可能需要添加更多参数,因此使用 Parameterized 类很有帮助,我想使用它,但我不确定如何解决我遇到的问题,以及它是否值得解决。任何想法都会有所帮助。
【问题讨论】:
-
改成
Arrays.asList(new Object[] { Translate.EN }, new Object[] { Translate.FR })之后就没有了吗? -
@AdamSiemion 不,问题仍然存在。同样的错误,但它是由第二个对象定义引起的。
-
a 当你创建方法
Object[] m(Object a) { return new Object[] { a }; }并将其更改为Arrays.asList(m(Translate.EN), m(Translate.FR))?
标签: java junit parameterized