Инструмент покрытия кода, который поддерживает аннотации тестов JUnit, чтобы указать, какой метод охватывает Unit Test

Я ищу что-то вроде " Указание покрытых методов" для Java в PHPUnit. Это означает инструмент покрытия кода, который поставляется с аннотациями для моих тестов JUnit, чтобы я мог указать, какой метод тестируется каким тестом JUnit.

Результатом этого будет гораздо более правильная метрика для покрытых строк, потому что учитываются только строки указанного метода, а не все исполняемые строки всего приложения.

1 ответ

Этот подход звучит так, как будто это будет тяжелым бременем для программиста. Он либо предполагает соответствие 1:1 между тестом и методом (что противоречит обычному совету думать с точки зрения тестирования поведения класса, а не методов), либо требует, чтобы программист вручную отслеживал маршрут через частные методы и т. Д. Для каждая точка входа в качестве кода подвергается рефакторингу и изменению с течением времени.

Трудно понять, как это можно реализовать с безопасностью типов - для быстрых автоматизированных операций, таких как переименование методов, потребуется обновить шаг вручную для обновления аннотаций в тестах.

Если ваше требование состоит в том, чтобы получить более точную оценку эффективности вашего набора тестов, альтернативный подход, который вы могли бы рассмотреть, - это мутационное тестирование. Это вызывает ошибки в вашем коде, а затем проверяет, способен ли ваш пакет их обнаружить.

Существует ряд систем, доступных для Java, включая

Сравнение их доступно здесь

http://pitest.org/java_mutation_testing_systems/

Другие вопросы по тегам