I am trying to be effective in writing some Junit tests for my Java Enum classes and method testing parse()
for each. Here's an example of doing this one at a time FileFormatCodeEnum
:
@Test
public void testFileFormatCodeEnum() {
FileFormatCodeEnum[] ens = FileFormatCodeEnum.values();
for(FileFormatCodeEnum en : ens) {
Assert.assertEquals(FileFormatCodeEnum.parse(en.getValue()), en);
}
}
Since every Enum class in my project has a method parse()
, I would prefer not to write the same code for each of them, replacing the class name wherever it was found.
I would like to do something more:
@Test
public void testAllEnums() {
ArrayList<Class> allEnums = new ArrayList<Class>();
allEnums.add(FileFormatCodeEnum.class);
allEnums.add(RoleTypeCodeEnum.class);
for (Class clazz : allEnums) {
for(Generic en : ens) {
Assert.assertEquals(SpecificEnum.parse(en.getValue()), en);
}
}
}
I'm not quite sure how to use reflection (?) To achieve this.
Does anyone know if there is an easy way?
Marc source
share