Java 在JUnit参数化测试中使用枚举的所有值

Java 在JUnit参数化测试中使用枚举的所有值,java,junit,enums,Java,Junit,Enums,我发现了一些在JUnit参数化测试中如何使用枚举值的示例,如下所示: enum Colors { GREEN, RED, ORANGE } @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { // How to use the complete enum here? {Colors.GREEN}, {Colo

我发现了一些在JUnit参数化测试中如何使用枚举值的示例,如下所示:

enum Colors {
  GREEN,
  RED,
  ORANGE
}

@Parameters
public static Collection<Object[]> data() {
  return Arrays.asList(new Object[][] {
    // How to use the complete enum here?
    {Colors.GREEN},
    {Colors.RED},
    {Colors.ORANGE},
  });
}
枚举颜色{
绿色
红色
橙色
}
@参数
公共静态收集数据(){
返回Arrays.asList(新对象[][]{
//如何在此处使用完整的枚举?
{Colors.GREEN},
{Colors.RED},
{Colors.ORANGE},
});
}
如何在
return
语句中使用完整的枚举,以便为枚举的每个值运行测试?

使用:

Colors[]value=Colors.values();
列表数据=新的ArrayList(values.length);
对于(颜色:值){data.add(新对象[]{color});}
返回数据;
请注意,按照正常惯例,枚举的名称应为
Color
,而不是
Colors
:查看标准库中的枚举。

使用:

Colors[]value=Colors.values();
列表数据=新的ArrayList(values.length);
对于(颜色:值){data.add(新对象[]{color});}
返回数据;

请注意,按照常规约定,枚举的名称应该是
Color
,而不是
Colors
:请查看标准库中的枚举。

我假设您正在尝试使用junit 4执行此操作。考虑到JUnit 5,它支持EnUM源(@ EnumSource)进行参数化测试。我想您正试图用JUnit4实现这一点。考虑到JUnit 5,它支持EnUM源(@ EnumSource)进行参数化测试。
Colors[] values = Colors.values();

List<Object[]> data = new ArrayList<>(values.length);
for (Colors color : values) { data.add(new Object[] { color }); }
return data;