Как получить полный репортаж с Эммы о синглетонах enum? - PullRequest
3 голосов
/ 11 августа 2011

Можно гарантировать уникальный экземпляр объекта с перечислениями в Java следующим образом:

public enum EmmaTest {

    ;

    public static int someStaticMethod() {
        return 33;
    }

}

Как можно реализовать 100% тестовое покрытие Эммы на таких объектах? Является ли это возможным? Или можно сказать Эмме игнорировать некоторые методы?

Лучшее, что я могу получить:

enter image description here

Ответы [ 2 ]

7 голосов
/ 24 сентября 2014

Добавление строки ниже к любому тесту исправило покрытие кода для меня:

MyEnum.valueOf(MyEnum.VALUE.toString());

Очевидно, что спор о значении этого отличается от фактического решения.У меня тоже есть требование 100% покрытия, которое падает из-за того, что конструктор перечисления не вызывается.Добавление вышеупомянутого к тесту решило, что для меня без каких-либо умных размышлений и т.д ...

2 голосов
/ 11 августа 2011

Ваш EmmaTest не является синглтоном.Существует 0 экземпляров EmmaTest, поэтому его конструктор никогда не используется, и нет способа вызвать valueOf с допустимым значением.

Кстати: вы действительно боитесь, что в valueOf или конструкторе по умолчанию может быть ошибка?Почему вы хотите 100% покрытие?

...