С чего начать и как писать Unit-тесты для проектов на PHP?
1. установить PHPUnit
2. научится запускать тесты на PHPUnit. Самые банальные по мануалу. Просто запускать и понять, как они срабатывают.
3. опробовать подход на небольших учебных задачах (всякие code-kata подойдут, задачи типа FizzBuzz, конвертёр температур из шкалы Цельсия в шкалу Фаренгейта, любые простые, алгоритмизируемые задачи с проверяемым результатом).
4. После понимания сути тестов, заводим tests/ в реальном проекте, и начинаем думать, как это всё завести. В первый раз достаточно сложно сообразить как всё это добро соединить. Постепенно прикручиваем тесты, осваиваем технику работы со стабами (Stub) и моками (Mock).
В процессе освоения шага №3, опробовать TDD: до написания кода, решающего задачу, пишем тесты для будущего кода. Это потребует в процессе написания теста продумать, как будут называться классы, методы, функции, какие граничные условия для прохождения тестов и проч.
Очень вероятно, что с первого раза не всё будет понятно и просто. Пробуйте.
Как пища для размышлений и осваивания методологии TDD, подборка задач:
codekata.com
Во многих там даже условия тестов прописаны, остаётся подкорректировать под себя и принятся за реализацию.
Попробуйте это:Перевод phptherightwayОригинал phptherightway