Такой код понравится вашим юнит-тестам
PHP, стандарты, фреймворки, библиотеки, OpenSource
Занимается разработкой на PHP более 10 лет. Поборник юнит-тестирования, изобретатель и экспериментатор.
Практически ежедневно пишу юнит-тесты в течение трёх лет. За это время выработался некоторый набор приёмов, который облегчает их создание и дальнейшую поддержку. В докладе затрону следующие пункты:
- Обратная связь улучшает качество вашего кода. Поясню, почему не стоит радоваться, если ваш код покрывает тестами сосед.
- Размер теста определяет его срок службы. Расскажу, почему у большого теста короткая жизнь.
- Повторение одних и тех же проверок в нескольких тестах бесцельно тратит ваше время. Удивлю, скорее всего, многих кодом без приватных методов.
- Если в каждом методе мало строк, а общее количество строк приблизительно такое же, значит маленьких методов должно быть много. Соглашусь с этим следствием принципа KISS и посоветую надёжное место для размещения этой большой компании.
- В длинных участках кода с многоуровневой вложенностью всегда присутствуют типичные абстракции. Предложу схемы нарезки существующего кода на мелкие части.
- Есть трудные случаи. Например, финальные методы и классы, генераторы, оператор new и т.п. Попробую порассуждать о возможности 100%-го покрытия тестами.
- Поделюсь наблюдениями, что улучшает читаемость и понимание модульного теста.