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

时间:2018-07-04 11:06:04

标签: 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},
    {Colors.RED},
    {Colors.ORANGE},
  });
}

如何在return语句中使用完整的枚举,以便针对枚举的每个值运行测试?

1 个答案:

答案 0 :(得分:2)

使用the values() method

Colors[] values = Colors.values();

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

请注意,按照惯例,枚举的名称应为Color,而不是Colors:请查看标准库中的枚举。