PHPUnit в MVC-подобных системах
Установка PHPUnit производится через PEAR (Описание на англ.).
Главное дальше — это научить систему работать не только (а лучше — совсем не) с серверными переменными вроде $_SERVER[‘REQUEST_URI’], а с переданными урлами (чтобы эмулировать обращение к конкретной странице) (Dependency Injection).
В рассматриваемом конкретном случае предполагается в начале каждого теста подгружать файл TestInit.php.
Листинг1. TestInit.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<? $_SERVER['HTTP_HOST'] = 'хост'; $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['QUERY_STRING'] = ''; //возникают ошибки, т.к. не все серверные переменные установлены ini_set('display_errors','off'); error_reporting(E_ERROR); require_once ('абсолютный-путь-к-рут-сайта/htdocs/init.php'); ini_set('display_errors','on'); error_reporting(E_ALL); ini_set('include_path', ini_get('include_path') . ';абсолютный-путь-к-рут-сайта;абсолютный-путь-к-PEAR;.'); require_once 'PHPUnit/Framework.php'; echo "--started--\n"; ?> |
Проблема — отключить вывод из шаблонов (система была сделана слишком прямолинейной — нет единого центра управления выводом).
Запуск получается следующий:
1 |
C:\wamp\php5\PEAR>pear-phpunit.bat C:\wamp\www\moikompas\tests\ModelGroup.php |
ССылки
Написание тестов — страницы PHPUnit Manual
Автоматизированное тестирование ZendFramework-приложений (manual)
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.