Что делать, если стандарты кодирования проекта конфликтуют с охватом кода модульного теста?
Я работаю над личным проектом для обучения, и в то же время для реализации достойного кода. Частью этого образования и превращения его в приличную часть кода является модульное тестирование. Я недавно погрузился вPHPUnit и его инструменты покрытия кода.
Я столкнулся с ситуацией с конкретной реализацией, когда используемый стандарт кодирования приводит к потере покрытия кода. В этом конкретном случае нарушение используемого стандарта кодирования приводит к скачку охвата кода с 88% до 94%.
В методе у меня есть 2 строки, которые выглядят следующим образом
// .. some data validation stuff
trigger_error('Error validating the stuff', E_USER_WARNING);
}
Проверка данных и прочее здесь не важны,}
является. Прямо сейчас, когда модульный тест проходит через эту строку кодаPHPUnit_Framework_Error
брошен на линии до}
, поскольку код никогда не продолжается до конца скобки, эта строка никогда не фиксируется покрытием кода.
Если я сделаю
// .. some data validation stuff
trigger_error('Error validating the stuff', E_USER_WARNING);}
Я получаю 6% скачок в покрытии кода. Я пытался установитьPHPUnit_Framework_Error_Warning::$enabled
вfalse
но затем я получаю уродливое, ожидаемое сообщение об ошибке в моем терминале, поскольку я хочу, чтобы этот проект в конечном итоге использовался людьми, кроме меня, сообщения об ошибках в модульных тестах неприемлемы. Кроме того, я действительно хотел бы, чтобы мои стили кодирования были реализованы последовательно. Нарушение стиля кода, скорее всего, выскочит при дальнейшем прочтении кода, а это значит, что мне также придется добавить страшный комментарий, объясняющий, почему фигурные скобки были перемещены ... вероятно, в нескольких местах.
Я думаю, мой вопрос (ы):
Есть ли параметр для PHPUnit, который позволил бы использовать 1TBS и по-прежнему покрываться тестом, генерирующим исключение или вызывающим ошибку, непосредственно перед}
?Что важнее - следовать стандарту кодирования или увеличить охват кода? (Хотя толчок - это просто переводчик}
)