Задать вопрос
@magary4

Пример юнит-тестирования. Полезнее чем assert(2,1+1 )?

везде одни и теже примитивные примеры
никак не могу увидеть пользы
не хочу делать тесты ради тестов

вот недавно написал хелпер похожий на
<th>{{ knp_pagination_sortable(pagination, 'Id') }}</th>

сначала было в нем пару строчек кода потом по мере использования в проекте увидел случаи когда надо было дописать еще кода чтоб он работал
т.е по мере роста проекта росли кейсы которые были не учтены и я их дописывал
до этого - я просто не видел этих самых кейсов
сейчас покрывать тестами ради тестов не могу себя никак заставить
вызывать этот хелпер с различными данными по сути assert(2,1+1 ) потом assert(3,2+1) потом assert(4,2+2)
для этих всех входных данных и разлиных условиях которые я придумаю искуственно он будет зеленым 99,9%. моя практика показывает что кейс когда ошибка случится будет обнаружен скорее всего заказчиком при каком-то его нетривиальном поведении

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

за одно у меня еще один вопрос
кроме классики phpunit я также пробую сейчас behat и вот что мне в нем очень понравилось

When I eat <eat> cucumbers
  Then I should have <left> cucumbers

  Examples:
    | start | eat | left |
    |  12   |  5  |  7   |
    |  20   |  5  |  15  |

Я пишу единожды функцию /* When I eat ARG cucumbers
и дальше я могу ее использовать в сотнях тестов

как это возможно с phpunit ?
второй огромный плюс замеченый мною в behat (хотя не относится к юнит тестированию) - это то что можно просто написать "@javascript" и тест будет запущен через селениум. т.е. второй раз код писать не нужно что секономит немало времени

какие проблемы могут быть с behat?
мы собираемся переходить на continues integration и ходят слухи что с behat это тяжее
  • Вопрос задан
  • 445 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы