好的,我知道这被认为是一种反模式,我当然乐于接受更好的方法。
我有一个枚举值图。我想确保将每个枚举值都分配给某个对象。我的测试看起来像这样。
@Test
public void eachRowRequiresCellCalc()
{
Model model = new Model();
EnumValues[] values = EnumValues.values();
for (EnumValues value : values)
{
Assert.assertTrue(String.format("%s must be assigned", value.name()), model.hasEnumValue(value));
}
}
该方法可以完成我要找的90%的工作。它没有给我显示是否未分配多个枚举值(第一个失败)。 JUnit是否有办法让每个测试多次失败?
最佳答案
理想情况下,一旦失败,您就不想检查所有值,因为它总会失败。
但是我建议一种解决方法,但不确定是否适合您:
@Test
public void eachRowRequiresCellCalc()
{
Model model = new Model();
EnumValues[] values = EnumValues.values();
List<EnumValues> isFalse = new ArrayList<EnumValues>;
for (EnumValues value : values)
{
if(!model.hasEnumValue(value)) {
isFalse.add(value);
}
}
//Now you have the array of incorrect values in 'isFalse'
}