CakePHP - Manual/CommonTasks/Testing/TestingViews /wiki/Manual/CommonTasks/Testing/TestingViews History/revisions of CakePHP/Manual/CommonTasks/Testing/TestingViews en-us 2009-05-04 19:26:20 /wiki/Manual/CommonTasks/Testing/TestingViews/show?time=2009-05-04+19%3A26%3A20 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a name=".manual.commontasks.testing.testingviews" href="/wiki/Manual/CommonTasks/Testing/TestingViews" class="">/Manual&nbsp;/&nbsp;Common&nbsp;Tasks&nbsp;/&nbsp;Testing&nbsp;/&nbsp;Testing&nbsp;Views</a> за <a href="/wiki/Manual/CommonTasks/Testing/TestingViews?time=2009-05-04+19%3A26%3A20">2009-05-04 19:26:20</a> и <a href="/wiki/Manual/CommonTasks/Testing/TestingViews">2009-05-04 19:29:55</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Дополнительную информацию читайте в&nbsp;документации по&nbsp;<!--notypo-->SimpleTest<!--/notypo-->.</div></div> 2009-05-04 19:00:53 /wiki/Manual/CommonTasks/Testing/TestingViews/show?time=2009-05-04+19%3A00%3A53 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/CommonTasks/Testing/TestingViews" class="">/Manual&nbsp;/&nbsp;Common&nbsp;Tasks&nbsp;/&nbsp;Testing&nbsp;/&nbsp;Testing&nbsp;Views</a> за <a href="/wiki/Manual/CommonTasks/Testing/TestingViews?time=2009-05-04+19%3A00%3A53">2009-05-04 19:00:53</a> и <a href="/wiki/Manual/CommonTasks/Testing/TestingViews?time=2009-05-04+19%3A26%3A20">2009-05-04 19:26:20</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Следуя соглашениям тестирования, вы&nbsp;должны создавать ваши тестовые отображение в&nbsp;tests/cases/views. Вы, конечно, можете положить эти&nbsp;тесты где&nbsp;угодно, но&nbsp;следовать соглашениям &ndash; это&nbsp;хорошая идея. Таким образом, давайте создадим файл tests/cases/views/complete_web.test.php<br /> Создавая веб-тесты, вы&nbsp;должны помнить, что&nbsp;ваш класс должен расширять <!--notypo-->CakeWebTestCase<!--/notypo-->, а&nbsp;не <!--notypo-->CakeTestCase<!--/notypo-->:<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?&nbsp;</span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">CompleteWebTestCase&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">CakeWebTestCase&nbsp;?&gt;</span> </span> </code></div><!--/notypo--><br /> Если вам&nbsp;необходимо сделать некоторые приготовления перед началом тестирования, то&nbsp;создайте конструктор:<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">CompleteWebTestCase</span><span style="color: #007700">(){<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//здесь&nbsp;содержимое<br /></span><span style="color: #0000BB">?&gt;<br /></span>}</span> </code></div><!--/notypo--><br /> Когда вы&nbsp;пишите код&nbsp;конкретного теста, то&nbsp;в первую очередь вам&nbsp;необходимо получить некоторые выходные данные для&nbsp;вывода. Это&nbsp;можно сделать, используя get() или&nbsp;post(). Оба&nbsp;этих метода принимают полный url&nbsp;в&nbsp;качестве первого параметра. URL&nbsp;можно получить динамически. Допустим, скрипт теста расположен по&nbsp;адресу <a href="http://your.domain/cake/folder/webroot/test.php" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink"><img src="/wiki_/themes/cake/icons/web.gif" alt="" border="0" />http://your.domain/cake/folder/webroot/test.php</a>:<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?<br />$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">baseurl&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">split</span><span style="color: #007700">(</span><span style="color: #DD0000">"webroot"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'PHP_SELF'</span><span style="color: #007700">]));<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> Тогда вы&nbsp;можете использовать get() или&nbsp;post() таким образом:<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?<br />$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">baseurl</span><span style="color: #007700">.</span><span style="color: #DD0000">"/products/index/"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">post</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">baseurl</span><span style="color: #007700">.</span><span style="color: #DD0000">"/customers/login"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> Второй параметр в&nbsp;методе post &ndash; это $data &ndash; ассоциативный массив, содержащий post-данные в&nbsp;Cake формате:<br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?<br />$data&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;</span><span style="color: #DD0000">"data[Customer][mail]"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"user@user.com"</span><span style="color: #007700">,<br />&nbsp;&nbsp;</span><span style="color: #DD0000">"data[Customer][password]"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"userpass"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> Когда вы&nbsp;запросите страницу, то&nbsp;можете выполнять все&nbsp;виды операций на&nbsp;ней, используя стандартные методы веб-тестирования <!--notypo-->SimpleTest<!--/notypo-->.<br /> <span class="missingpage">&lt;&lt; Тестирование компонентов</span><a href="/wiki/TestingComponents/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Тестирование плагинов &gt;&gt;</span><a href="/wiki/TestingPlugins/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-05-03 17:24:13 /wiki/Manual/CommonTasks/Testing/TestingViews/show?time=2009-05-03+17%3A24%3A13 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/CommonTasks/Testing/TestingViews" class="">/Manual&nbsp;/&nbsp;Common&nbsp;Tasks&nbsp;/&nbsp;Testing&nbsp;/&nbsp;Testing&nbsp;Views</a> за <a href="/wiki/Manual/CommonTasks/Testing/TestingViews?time=2009-05-03+17%3A24%3A13">2009-05-03 17:24:13</a> и <a href="/wiki/Manual/CommonTasks/Testing/TestingViews?time=2009-05-04+19%3A00%3A53">2009-05-04 19:00:53</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Большинство проектов <!--notypo-->CakePHP<!--/notypo--> &ndash; это&nbsp;веб-приложения. Юнит-тестирование является отличным способом для&nbsp;проверки маленьких частей функциональности, но&nbsp;вы можете захотеть протестировать функциональность в&nbsp;большем масштабе. Класс <!--notypo-->CakeWebTestCase<!--/notypo--> предоставляет хороший способ сделать это&nbsp;с&nbsp;точки зрения пользователя.<br /> <hr noshade="noshade" size="1" /><a name="h905-1"></a><h3><!--notypo-->CakeWebTestCase<!--/notypo--></h3> <strong>CakeWebTestCase</strong> является прямым расширением <!--notypo-->SimpleTest<!--/notypo--> для&nbsp;случая веб-тестирования, без&nbsp;другой дополнительной функциональности. Все&nbsp;возможности, описанные в&nbsp;документации <!--notypo-->SimpleTest<!--/notypo--> для&nbsp;веб-тестирования, также есть и&nbsp;здесь. Это&nbsp;также означает, что&nbsp;нет других возможностей, отличных от&nbsp;возможностей <!--notypo-->SimpleTest<!--/notypo-->. Т.е., вы&nbsp;не сможете использовать прикрепления. И&nbsp;все действия во&nbsp;время проведения тестов, включая обновление и&nbsp;сохранение в&nbsp;базу данных, изменят значения в&nbsp;базе данных. Результаты тестов часто основываются на&nbsp;том, какие значения содержит база данных, таким образом, проверка того, что&nbsp;база данных содержит ожидаемые значения &ndash; является частью процедуры тестирования.<br /> <hr noshade="noshade" size="1" /><a name="h905-2"></a><h3>Создание теста</h3></div></div>