Я согласен с другими авторами, что 100% покрытие кода может быть ошибочным.
Но я должен признать, что получаю 100% -ное покрытие недавно написанного основного кода.
К счастью, поскольку все перечисления расширяют один и тот же «класс», вы можете достичь своего 100% с небольшой помощью размышлений вашего друга.
Просто добавьте следующий статический метод в класс для вызова тестировщиками, используя [EnumTypeName] .class в качестве параметра.
public static void superficialEnumCodeCoverage(Class<? extends Enum<?>> enumClass) {
try {
for (Object o : (Object[])enumClass.getMethod("values").invoke(null)) {
enumClass.getMethod("valueOf", String.class).invoke(null, o.toString());
}
}
catch (Throwable e) {
throw new RuntimeException(e);
}
}
Предполагая, что эта статическая функция была реализована в классе "Shared", вам нужно будет только включить эту строку для каждого перечисления:
Shared.superficialEnumCodeCoverage(UserRole.class);
Ключевое слово «поверхностный».