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