<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Разработка &#187; PEAR</title>
	<atom:link href="http://www.job-blog.bullgare.ru/tag/pear/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.job-blog.bullgare.ru</link>
	<description>о программировании и работе</description>
	<lastBuildDate>Fri, 03 Feb 2012 09:42:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Установка и использование PHPUnit в Windows</title>
		<link>http://www.job-blog.bullgare.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-phpunit-%d0%b2-windows/</link>
		<comments>http://www.job-blog.bullgare.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-phpunit-%d0%b2-windows/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 11:28:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[администрирование]]></category>
		<category><![CDATA[PEAR]]></category>
		<category><![CDATA[PHPUnit]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=251</guid>
		<description><![CDATA[Сначала устанавливаем 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. Надо обновить &#8211; см. заметку по установке PEAR. Если не получилось установить с помощью PEAR. После этого нужно писать тесты. Подойдёт что-то вроде ModelAdv.php &#60;? [...]]]></description>
			<content:encoded><![CDATA[<p>Сначала <a href="http://www.job-blog.bullgare.ru/2009/09/установка-pear-под-windows/">устанавливаем PEAR</a>.<br />
Далее нужно зарегистрировать каналы</p>
<pre class="code">
путь-к-php\pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
</pre>
<p>Теперь можно установить PHPUnit</p>
<pre class="code">путь-к-php\pear install phpunit/PHPUnit</pre>
<p>При этом может поругаться на версию PEAR. Надо обновить &#8211; см. заметку по установке PEAR.<br />
<a href="http://www.job-blog.bullgare.ru/2009/09/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-phpunit-%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E-%D0%B2-windows/">Если не получилось установить с помощью PEAR</a>.<br />
После этого нужно писать тесты.<br />
Подойдёт что-то вроде</p>
<blockquote><p>ModelAdv.php</p></blockquote>
<pre class="code">&lt;?
//инициализация - можно вынести в отдельный файл
$_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' 	=&gt; array ('category' =&gt; 'biznes', 'place' =&gt; 'modules_top'),
					'out' 	=&gt; array ('zoneid' =&gt; 74, 'n' =&gt; 'a1ebea39')
				),
				array
				(//всё правильно - вернуть умолчание
					'in' 	=&gt; array ('category' =&gt; 'biznes', 'place' =&gt; 'modules_middle'),
					'out' 	=&gt; array ('zoneid' =&gt; 2, 'n' =&gt; 'a159618f')
				),
				array
				(//неверная категория - вернуть умолчание
					'in' 	=&gt; array ('category' =&gt; 'biznes1', 'place' =&gt; 'modules_top'),
					'out' 	=&gt; array ('zoneid' =&gt; 73, 'n' =&gt; 'ae343b6d')
				),
				array
				(//неверное место показа - вернуть ''
					'in' 	=&gt; array ('category' =&gt; 'biznes', 'place' =&gt; 'modules_to'),
					'out' 	=&gt; ''
				),
				array
				(//неверная категория и место показа - вернуть ''
					'in' 	=&gt; array ('category' =&gt; 'biznes12', 'place' =&gt; 'modules_to'),
					'out' 	=&gt; ''
				),
			);
		foreach ($params as $par)
		{
			$out = adv::renderOpenxBannerOnPage($par['in']['category'], $par['in']['place'], true);
			$this-&gt;assertEquals($out, $par['out']);
		}
	}
	public function test_renderOpenxBannerByParams()
	{
		$params =
			array
			(
				array
				(//всё правильно
					'in' 	=&gt; array ('bannerpage' =&gt; 'compas', 'place' =&gt; 'top', 'category' =&gt; 'biznes'),
					'out' 	=&gt; array ('zoneid' =&gt; 45, 'n' =&gt; 'ae7d79d4')
				),
				array
				(//всё правильно
					'in' 	=&gt; array ('bannerpage' =&gt; 'compas', 'place' =&gt; 'right', 'category' =&gt; 'razvlecheniya'),
					'out' 	=&gt; array ('zoneid' =&gt; 29, 'n' =&gt; 'a14675ed')
				),
				array
				(//всё правильно
					'in' 	=&gt; array ('bannerpage' =&gt; 'index', 'place' =&gt; 'right', 'category' =&gt; null),
					'out' 	=&gt; array ('zoneid' =&gt; 7, 'n' =&gt; 'a2a070c5')
				),
				array
				(//всё правильно - вернуть умолчание
					'in' 	=&gt; array ('bannerpage' =&gt; 'index', 'place' =&gt; 'top', 'category' =&gt; 'biznes'),
					'out' 	=&gt; array ('zoneid' =&gt; 5, 'n' =&gt; 'abff2e70')
				),
				array
				(//страница компаса, неверная категория - вернуть умолчание
					'in' 	=&gt; array ('bannerpage' =&gt; 'compas', 'place' =&gt; 'top', 'category' =&gt; ''),
					'out' 	=&gt; array ('zoneid' =&gt; 44, 'n' =&gt; 'abf29464')
				),
				array
				(//неверное место показа - вернуть ''
					'in' 	=&gt; array ('bannerpage' =&gt; 'index', 'place' =&gt; '', 'category' =&gt; 'biznes'),
					'out' 	=&gt; ''
				),
			);
		foreach ($params as $par)
		{
			$out = adv::renderOpenxBannerByParams($par['in']['bannerpage'], $par['in']['place'], $par['in']['category'], true);
			//var_dump($out);
			$this-&gt;assertEquals($par['out'], $out);
		}
	}
}
?&gt;</pre>
<p>Запускать из папки с исполняемыми файлами php (где php.exe):</p>
<pre class="code">phpunit.bat путь-к-папке-tests\ModelAdv.php</pre>
<p>А дальше &#8211; поехало: <a href="http://ru.wikipedia.org/wiki/Test-Driven_Development">tdd</a>, <a href="http://ru.wikipedia.org/wiki/Extreme_programming">xp</a>.</p>
<p>Ссылки по теме:<br />
<a href="http://www.phpunit.de/manual/current/en/installation.html">документация по установке</a>,<br />
<a href="http://www.phpunit.de/manual/current/en/writing-tests-for-phpunit.html">документация по написанию тестов</a>,<br />
<a href="http://www.phpunit.de/manual/current/en/continuous-integration.html#continuous-integration.phpUnderControl">phpUnderControl</a> (<a href="http://www.martinfowler.com/articles/continuousIntegration.html">зачем?</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-phpunit-%d0%b2-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка PEAR под Windows</title>
		<link>http://www.job-blog.bullgare.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-pear-%d0%bf%d0%be%d0%b4-windows/</link>
		<comments>http://www.job-blog.bullgare.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-pear-%d0%bf%d0%be%d0%b4-windows/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 11:01:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[администрирование]]></category>
		<category><![CDATA[PEAR]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.job-blog.bullgare.ru/?p=256</guid>
		<description><![CDATA[Установка PEAR под Windows путь-к-php\go-pear.bat лично у меня работать не захотело (php5.3), пока не изменил bat-файл на следующий: @ECHO OFF set PHP_BIN=php.exe %PHP_BIN% -d output_buffering=0 -d phar.require_hash=0 PEAR\go-pear.phar pause после этого для установки переменных окружения (если это нужно): путь-к-php\PEAR_ENV.reg или добавить путь-к-php в переменную PATH. Может понадобиться обновить PEAR: путь-к-php\pear upgrade PEAR]]></description>
			<content:encoded><![CDATA[<p>Установка PEAR под Windows</p>
<pre class="code">
путь-к-php\go-pear.bat
</pre>
<p>лично у меня работать не захотело (php5.3), пока не изменил bat-файл на следующий:</p>
<pre class="code">
@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 -d phar.require_hash=0 PEAR\go-pear.phar
pause
</pre>
<p>после этого для установки переменных окружения (если это нужно):</p>
<pre class="code">
путь-к-php\PEAR_ENV.reg
</pre>
<p>или добавить <em>путь-к-php</em> в переменную <em>PATH</em>.<br />
Может понадобиться обновить PEAR:</p>
<pre class="code">
путь-к-php\pear upgrade PEAR
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.job-blog.bullgare.ru/2009/09/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-pear-%d0%bf%d0%be%d0%b4-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

