Как создать модульные тесты для новой платформы MVC - PullRequest
0 голосов
/ 06 сентября 2011

Я недавно изучал MVC и начал создавать свою собственную структуру (конечно, только для учебных целей) из http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/

Я хочу иметь возможность расширять эти базовые классы, но сначала я бы хотелчтобы иметь возможность их модульного тестирования.У кого-нибудь есть идеи, как мне провести тестирование базовых классов Controller, Model и Template?

Заранее спасибо!

1 Ответ

2 голосов
/ 06 сентября 2011

Просто напишите тестовые классы, предпочтительно отражающие структуру вашей структуры (например, ControllerTest, ModelTest и т. Д.), Которые проверяют классы по их темпам, то есть вводят некоторые данные и проверяют вывод.Если ваш код хорошо структурирован, его легко реализовать.

Редактировать

По сути, вы тестируете в модульном тесте if ( Class::methodToTest( $input ) === $expected_output ).Вывод должен всегда быть идентичным для того же $input.Если это не так или вы не можете протестировать, напишите тестовый пример, подобный этому, это часто показатель того, что ваш код плохо структурирован (объектно-ориентирован и слабо связан).

Ваш Template::render() методнапример, не тестируется, потому что печатает данные, а не возвращает их.Теперь вы можете обойти эту проблему, используя ob_start(), но в любом случае лучше будет разделить функцию на более мелкие части, которые возвращают значения вместо прямой их печати. ​​

Это немного абстрактно, но я надеюсь, что выполучить точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...