Просто напишите тестовые классы, предпочтительно отражающие структуру вашей структуры (например, ControllerTest
, ModelTest
и т. Д.), Которые проверяют классы по их темпам, то есть вводят некоторые данные и проверяют вывод.Если ваш код хорошо структурирован, его легко реализовать.
Редактировать
По сути, вы тестируете в модульном тесте if ( Class::methodToTest( $input ) === $expected_output )
.Вывод должен всегда быть идентичным для того же $input
.Если это не так или вы не можете протестировать, напишите тестовый пример, подобный этому, это часто показатель того, что ваш код плохо структурирован (объектно-ориентирован и слабо связан).
Ваш Template::render()
методнапример, не тестируется, потому что печатает данные, а не возвращает их.Теперь вы можете обойти эту проблему, используя ob_start()
, но в любом случае лучше будет разделить функцию на более мелкие части, которые возвращают значения вместо прямой их печати.
Это немного абстрактно, но я надеюсь, что выполучить точку.