PHPUnit в MVC-подобных системах
Установка PHPUnit производится через PEAR (Описание на англ.).
Главное дальше — это научить систему работать не только (а лучше — совсем не) с серверными переменными вроде $_SERVER[‘REQUEST_URI’], а с переданными урлами (чтобы эмулировать обращение к конкретной странице) (Dependency Injection).
В рассматриваемом конкретном случае предполагается в начале каждого теста подгружать файл TestInit.php.
Листинг1. TestInit.php
<?
$_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";
?>
Проблема — отключить вывод из шаблонов (система была сделана слишком прямолинейной — нет единого центра управления выводом).
Запуск получается следующий:
C:\wamp\php5\PEAR>pear-phpunit.bat C:\wamp\www\moikompas\tests\ModelGroup.php
ССылки
Написание тестов — страницы PHPUnit Manual
Автоматизированное тестирование ZendFramework-приложений (manual)
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.