Leave a Comment
Установка и использование PHPUnit в Windows
Сначала устанавливаем PEAR.
Далее нужно зарегистрировать каналы
путь-к-php\pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear.symfony-project.com
Теперь можно установить PHPUnit
путь-к-php\pear install phpunit/PHPUnit
При этом может поругаться на версию PEAR. Надо обновить — см. заметку по установке PEAR.
Если не получилось установить с помощью PEAR.
После этого нужно писать тесты.
Подойдёт что-то вроде
ModelAdv.php
<?
//инициализация - можно вынести в отдельный файл
$_SERVER['HTTP_HOST'] = 'my_project';
$_SERVER['REQUEST_METHOD'] = 'GET';
$_SERVER['QUERY_STRING'] = '';
//возникают ошибки, т.к. не все серверные переменные установлены
ini_set('display_errors','off');
error_reporting(E_ERROR);
require_once ('S:/wamp/www/moikompas/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";
//--инициализация
/*
//это для тестирования контроллера - для задания всех его свойств
cfg::init('/groups/test/');
//здесь идёт передача управления контроллеру.
//вывод нам не нужен
ob_start();
require_once ('htdocs/index.php');
ob_clean();*/
//загружаем тестируемый класс (если нет автозагрузки)
load::c('adv');
//собственно сами тесты
class AdvTest extends PHPUnit_Framework_TestCase
{
public function test_renderOpenxBannerOnPage()
{
$params =
array
(
array
(//всё правильно
'in' => array ('category' => 'biznes', 'place' => 'modules_top'),
'out' => array ('zoneid' => 74, 'n' => 'a1ebea39')
),
array
(//всё правильно - вернуть умолчание
'in' => array ('category' => 'biznes', 'place' => 'modules_middle'),
'out' => array ('zoneid' => 2, 'n' => 'a159618f')
),
array
(//неверная категория - вернуть умолчание
'in' => array ('category' => 'biznes1', 'place' => 'modules_top'),
'out' => array ('zoneid' => 73, 'n' => 'ae343b6d')
),
array
(//неверное место показа - вернуть ''
'in' => array ('category' => 'biznes', 'place' => 'modules_to'),
'out' => ''
),
array
(//неверная категория и место показа - вернуть ''
'in' => array ('category' => 'biznes12', 'place' => 'modules_to'),
'out' => ''
),
);
foreach ($params as $par)
{
$out = adv::renderOpenxBannerOnPage($par['in']['category'], $par['in']['place'], true);
$this->assertEquals($out, $par['out']);
}
}
public function test_renderOpenxBannerByParams()
{
$params =
array
(
array
(//всё правильно
'in' => array ('bannerpage' => 'compas', 'place' => 'top', 'category' => 'biznes'),
'out' => array ('zoneid' => 45, 'n' => 'ae7d79d4')
),
array
(//всё правильно
'in' => array ('bannerpage' => 'compas', 'place' => 'right', 'category' => 'razvlecheniya'),
'out' => array ('zoneid' => 29, 'n' => 'a14675ed')
),
array
(//всё правильно
'in' => array ('bannerpage' => 'index', 'place' => 'right', 'category' => null),
'out' => array ('zoneid' => 7, 'n' => 'a2a070c5')
),
array
(//всё правильно - вернуть умолчание
'in' => array ('bannerpage' => 'index', 'place' => 'top', 'category' => 'biznes'),
'out' => array ('zoneid' => 5, 'n' => 'abff2e70')
),
array
(//страница компаса, неверная категория - вернуть умолчание
'in' => array ('bannerpage' => 'compas', 'place' => 'top', 'category' => ''),
'out' => array ('zoneid' => 44, 'n' => 'abf29464')
),
array
(//неверное место показа - вернуть ''
'in' => array ('bannerpage' => 'index', 'place' => '', 'category' => 'biznes'),
'out' => ''
),
);
foreach ($params as $par)
{
$out = adv::renderOpenxBannerByParams($par['in']['bannerpage'], $par['in']['place'], $par['in']['category'], true);
//var_dump($out);
$this->assertEquals($par['out'], $out);
}
}
}
?>
Запускать из папки с исполняемыми файлами php (где php.exe):
phpunit.bat путь-к-папке-tests\ModelAdv.php
Ссылки по теме:
документация по установке,
документация по написанию тестов,
phpUnderControl (зачем?)
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.