<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>CakePHP - Manual/CommonTasks/Testing/PreparingTestData</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData</link>
<description>History/revisions of CakePHP/Manual/CommonTasks/Testing/PreparingTestData</description>
<language>en-us</language>
<item>
<title>2009-04-28 12:47:44</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData/show?time=2009-04-28+12%3A47%3A44</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".manual.commontasks.testing.preparingtestdata" href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Testing&amp;nbsp;/&amp;nbsp;Preparing&amp;nbsp;Test&amp;nbsp;Data&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-28+12%3A47%3A44">2009-04-28 12:47:44&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData">2009-04-29 15:56:04&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h899-1">&lt;/a>&lt;h1> Подготовка данных для&amp;nbsp;тестирования &lt;/h1>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h899-1">&lt;/a>&lt;h1> Подготовка тестовых данных &lt;/h1>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-04-28 12:01:29</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData/show?time=2009-04-28+12%3A01%3A29</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Testing&amp;nbsp;/&amp;nbsp;Preparing&amp;nbsp;Test&amp;nbsp;Data&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-28+12%3A01%3A29">2009-04-28 12:01:29&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-28+12%3A47%3A44">2009-04-28 12:47:44&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h899-1">&lt;/a>&lt;h3>Импортирование информации из&amp;nbsp;таблиц и&amp;nbsp;записей&lt;/h3>
Ваше приложение может иметь уже&amp;nbsp;работающую модель с&amp;nbsp;реальными данными, и&amp;nbsp;вы можете захотеть протестировать вашу модель с&amp;nbsp;этими данными. Это&amp;nbsp;будет дублирование усилий &amp;ndash; определять таблицу и&amp;nbsp;её записи в&amp;nbsp;прикреплении. К&amp;nbsp;счастью, существует способ определить таблицу и&amp;nbsp;её записи для&amp;nbsp;определенного прикрипления из&amp;nbsp;существующей модели, или&amp;nbsp;таблицы.&lt;br />
Начнем с&amp;nbsp;примера. Предположим у&amp;nbsp;вас есть модель Article (соответствует таблице articles). Изменим пример прикрепления, приведенные выше (app/tests/fixtures/article_fixture.php):&lt;br />
&lt;div class="indent"> class &lt;span class="missingpage">Article&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/ArticleFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> extends &lt;span class="missingpage">Cake&amp;nbsp;Test&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/CakeTestFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> { &lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">var $name = 'Article'; &lt;br />
var $import = 'Article'; &lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div> } &lt;br />
 ?&amp;gt; &lt;/div>
Это&amp;nbsp;выражение говорит тестовому комплексу импортировать определение таблицы из&amp;nbsp;таблицы, привязанной к&amp;nbsp;модели Article. Вы&amp;nbsp;можете использовать любую модель, доступную в&amp;nbsp;вашем приложении. Выражение, приведенное выше, не&amp;nbsp;импортирует записи, но&amp;nbsp;вы можете сделать это, изменив его&amp;nbsp;таким образом:&lt;br />
&amp;lt;?php   &lt;br />
class &lt;span class="missingpage">Article&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/ArticleFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> extends &lt;span class="missingpage">Cake&amp;nbsp;Test&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/CakeTestFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> {&lt;br />
&lt;div class="indent">&lt;div class="indent">var $name = 'Article';&lt;br />
var $import = array('model' =&amp;gt; 'Article', 'records' =&amp;gt; true);  &lt;/div>&lt;/div>
}&lt;br />
?&amp;gt; &lt;br />
Если же&amp;nbsp;у вас&amp;nbsp;есть таблица, но&amp;nbsp;нет модели для&amp;nbsp;неё, то&amp;nbsp;вы можете указать таблицу, а&amp;nbsp;не модель:&lt;br />
&lt;div class="indent"> class &lt;span class="missingpage">Article&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/ArticleFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> extends &lt;span class="missingpage">Cake&amp;nbsp;Test&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/CakeTestFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> { &lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">var $name = 'Article'; &lt;br />
var $import = array('table' =&amp;gt; 'articles'); &lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div> } &lt;/div>
Этот код&amp;nbsp;будет импортировать определение таблицы из&amp;nbsp;таблицы 'articles', используя 'default' соединение к&amp;nbsp;базе данных. Если вы&amp;nbsp;хотите изменить соединение, то&amp;nbsp;делайте так:&lt;br />
&lt;div class="indent"> class &lt;span class="missingpage">Article&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/ArticleFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> extends &lt;span class="missingpage">Cake&amp;nbsp;Test&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/CakeTestFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> { &lt;br />
 var $name = 'Article'; &lt;br />
 var $import = array('table' =&amp;gt; 'articles', 'connection' =&amp;gt; 'other'); &lt;br />
 } &lt;br />
 ?&amp;gt; &lt;/div>
Если в&amp;nbsp;соединении к&amp;nbsp;базе данных определен префикс, то&amp;nbsp;он будет автоматически использоваться при&amp;nbsp;получении информации о&amp;nbsp;таблице. Предыдущие два&amp;nbsp;примера не&amp;nbsp;импортируют записи из&amp;nbsp;таблицы. Чтобы заставить прикрепление также импортировать и&amp;nbsp;записи внесите следующие изменения:&lt;br />
 &amp;lt;?php  &lt;br />
&lt;div class="indent"> class &lt;span class="missingpage">Article&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/ArticleFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> extends &lt;span class="missingpage">Cake&amp;nbsp;Test&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/CakeTestFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> { &lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">var $name = 'Article'; &lt;br />
var $import = array('table' =&amp;gt; 'articles', 'records' =&amp;gt; true); &lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div> } &lt;/div>
Также вы&amp;nbsp;можете импортировать структуру таблицы из&amp;nbsp;существующей модели/таблицы, а&amp;nbsp;записи для&amp;nbsp;этой таблицы определить непосредственно в&amp;nbsp;прикриплении:&lt;br />
&lt;div class="indent"> class &lt;span class="missingpage">Article&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/ArticleFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> extends &lt;span class="missingpage">Cake&amp;nbsp;Test&amp;nbsp;Fixture&lt;/span>&lt;a href="http://cake-php.ru/wiki/CakeTestFixture/edit?add=1" title="Создать эту страницу">?&lt;/a> { &lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">var $name = 'Article'; &lt;br />
var $import = 'Article'; &lt;br />
 &lt;br />
var $records = array( &lt;br />
&lt;div class="indent">&lt;div class="indent">array ('id' =&amp;gt; 1, 'title' =&amp;gt; 'First Article', 'body' =&amp;gt; 'First Article Body', 'published' =&amp;gt; '1', 'created' =&amp;gt; '&lt;span class="nobr">2007&amp;ndash;03&amp;ndash;18&lt;/span> 10:39:23', 'updated' =&amp;gt; '&lt;span class="nobr">2007&amp;ndash;03&amp;ndash;18&lt;/span> 10:41:31'), &lt;br />
array ('id' =&amp;gt; 2, 'title' =&amp;gt; 'Second Article', 'body' =&amp;gt; 'Second Article Body', 'published' =&amp;gt; '1', 'created' =&amp;gt; '&lt;span class="nobr">2007&amp;ndash;03&amp;ndash;18&lt;/span> 10:41:23', 'updated' =&amp;gt; '&lt;span class="nobr">2007&amp;ndash;03&amp;ndash;18&lt;/span> 10:43:31'), &lt;br />
array ('id' =&amp;gt; 3, 'title' =&amp;gt; 'Third Article', 'body' =&amp;gt; 'Third Article Body', 'published' =&amp;gt; '1', 'created' =&amp;gt; '&lt;span class="nobr">2007&amp;ndash;03&amp;ndash;18&lt;/span> 10:43:23', 'updated' =&amp;gt; '&lt;span class="nobr">2007&amp;ndash;03&amp;ndash;18&lt;/span> 10:45:31') &lt;br />
&lt;/div>&lt;/div>); &lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div> } &lt;/div>
&lt;span class="missingpage">&amp;lt;&amp;lt; Обзор тестирования&lt;/span>&lt;a href="http://cake-php.ru/wiki/Overview/edit?add=1" title="Создать эту страницу">?&lt;/a> | &lt;span class="missingpage">Создание тестов &amp;gt;&amp;gt;&lt;/span>&lt;a href="http://cake-php.ru/wiki/Creating/edit?add=1" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-04-27 21:32:34</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData/show?time=2009-04-27+21%3A32%3A34</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Testing&amp;nbsp;/&amp;nbsp;Preparing&amp;nbsp;Test&amp;nbsp;Data&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-27+21%3A32%3A34">2009-04-27 21:32:34&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-28+12%3A01%3A29">2009-04-28 12:01:29&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">При&amp;nbsp;создании прикрепления, в&amp;nbsp;основном, вам&amp;nbsp;надо определить две&amp;nbsp;вещи: структуру таблицы (какие поля будут входить в&amp;nbsp;неё), и&amp;nbsp;какие записи будут изначально записаны в&amp;nbsp;эту тестовую таблицу. Давайте создадим наше первое прикрипление, которое будет использоваться для&amp;nbsp;тестирования нашей модели Article. В&amp;nbsp;каталоге app/tests/fixtures создадим файл article_fixture.php со&amp;nbsp;следующим содержимым:&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;span style="color: #000000">
&lt;span style="color: #0000BB">&amp;lt;?php&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&lt;/span>&lt;span style="color: #007700">class&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">ArticleFixture&amp;nbsp;&lt;/span>&lt;span style="color: #007700">extends&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">CakeTestFixture&amp;nbsp;&lt;/span>&lt;span style="color: #007700">{&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">$name&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Article'&lt;/span>&lt;span style="color: #007700">;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">$fields&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;nbsp;array(&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'id'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;array(&lt;/span>&lt;span style="color: #DD0000">'type'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'integer'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'key'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'primary'&lt;/span>&lt;span style="color: #007700">),&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'title'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;array(&lt;/span>&lt;span style="color: #DD0000">'type'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'string'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'length'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">255&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'null'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">false&lt;/span>&lt;span style="color: #007700">),&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'body'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'text'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'published'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;array(&lt;/span>&lt;span style="color: #DD0000">'type'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'integer'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'default'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'0'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'null'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">false&lt;/span>&lt;span style="color: #007700">),&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'created'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'datetime'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'updated'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'datetime'&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #007700">);&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">$records&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;nbsp;array(&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array&amp;nbsp;(&lt;/span>&lt;span style="color: #DD0000">'id'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">1&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'title'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Первая&amp;nbsp;статья'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'body'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Содержимое&amp;nbsp;первой&amp;nbsp;статьи'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'published'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'1'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'created'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'2007-03-18&amp;nbsp;10:39:23'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'updated'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'2007-03-18&amp;nbsp;10:41:31'&lt;/span>&lt;span style="color: #007700">),&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array&amp;nbsp;(&lt;/span>&lt;span style="color: #DD0000">'id'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">2&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'title'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Вторая&amp;nbsp;статья'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'body'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Содержимое&amp;nbsp;второй&amp;nbsp;статьи'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'published'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'1'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'created'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'2007-03-18&amp;nbsp;10:41:23'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'updated'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'2007-03-18&amp;nbsp;10:43:31'&lt;/span>&lt;span style="color: #007700">),&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array&amp;nbsp;(&lt;/span>&lt;span style="color: #DD0000">'id'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">3&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'title'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Третья&amp;nbsp;статья'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'body'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Содержимое&amp;nbsp;третьей&amp;nbsp;статьи'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'published'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'1'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'created'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'2007-03-18&amp;nbsp;10:43:23'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'updated'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'2007-03-18&amp;nbsp;10:45:31'&lt;/span>&lt;span style="color: #007700">)&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&amp;nbsp;&lt;br />&amp;nbsp;}&amp;nbsp;&lt;br />&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">?&amp;gt;&lt;/span>
&lt;/span>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
Мы&amp;nbsp;используем $fields для&amp;nbsp;определения того, какие поля будет содержать таблица. Формат, используемый для&amp;nbsp;определения этих полей, такой же, который используется в&amp;nbsp;функции generateColumnSchema(), определенной в&amp;nbsp;классах движка баз&amp;nbsp;данных &lt;!--notypo-->CakePHP&lt;!--/notypo--> (например, в&amp;nbsp;файле dbo_mysql.php.) Давайте посмотрим какие атрибуты может иметь поле и&amp;nbsp;их значение:&lt;br />
&lt;strong>type&lt;/strong>   &lt;br />
&lt;div class="indent"> внутренний тип&amp;nbsp;данных &lt;!--notypo-->CakePHP&lt;!--/notypo-->. Сейчас поддерживаются: string (соответствует VARCHAR), text (соответствует TEXT), integer (соответствует to&amp;nbsp;INT), float (соответствует to&amp;nbsp;FLOAT), datetime (соответствует DATETIME), timestamp (соответствует TIMESTAMP), time (соответствует TIME), date (соответствует DATE), и&amp;nbsp;binary (соответствует BLOB)&lt;/div>
&lt;strong>key&lt;/strong>   &lt;br />
&lt;div class="indent"> установите в&amp;nbsp;'primary', чтобы поле было AUTO_INCREMENT и&amp;nbsp;PRIMARY KEY&amp;nbsp;для таблицы.&lt;/div>
&lt;strong>length&lt;/strong>   &lt;br />
&lt;div class="indent"> присваивайте определенную длину, которую должно иметь поле.&lt;/div>
&lt;strong>null&lt;/strong>&lt;br />
&lt;div class="indent"> устанавливайте в&amp;nbsp;true (для разрешения значений NULL) или&amp;nbsp;false (для запрещения значений NULL)&lt;/div>
&lt;strong>default&lt;/strong>    &lt;br />
&lt;div class="indent"> значение по&amp;nbsp;умолчанию, которое принимает поле.&lt;/div>
И&amp;nbsp;наконец-то, мы&amp;nbsp;можем определить множество записей, которые будут записаны в&amp;nbsp;тестовую таблицу сразу же&amp;nbsp;после её создания. Формат довольно простой и&amp;nbsp;требует минимум дальнейших разъяснений. Просто помните, что&amp;nbsp;каждая запись в&amp;nbsp;массиве $records должна иметь ключ для&amp;nbsp;каждого поля, определенного в&amp;nbsp;массиве $fields. Если поля для&amp;nbsp;какой-то записи должно иметь значение NULL, то&amp;nbsp;просто определите значение этого поля как&amp;nbsp;NULL.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-04-27 19:30:46</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData/show?time=2009-04-27+19%3A30%3A46</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Testing&amp;nbsp;/&amp;nbsp;Preparing&amp;nbsp;Test&amp;nbsp;Data&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-27+19%3A30%3A46">2009-04-27 19:30:46&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/Testing/PreparingTestData?time=2009-04-27+21%3A32%3A34">2009-04-27 21:32:34&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Когда тестируете код, который зависит от&amp;nbsp;моделей и&amp;nbsp;данных, можно использовать прикрепления, как&amp;nbsp;способ генерировать временные таблицы, заполненные данными для&amp;nbsp;тестирования. Преимущество использования прикреплений &amp;ndash; это&amp;nbsp;то, что&amp;nbsp;ваш тест не&amp;nbsp;сможет разрушить реальные данные. Также, вы&amp;nbsp;можете начать тестировать ваш&amp;nbsp;код непосредственно до&amp;nbsp;разработки реального содержимого для&amp;nbsp;приложения.&lt;br />
&lt;!--notypo-->CakePHP&lt;!--/notypo--> попытается использовать соединение с&amp;nbsp;именем $test в&amp;nbsp;конфигурационном файле app/config/database.php. Если это&amp;nbsp;соединение не&amp;nbsp;получится использовать, то&amp;nbsp;будет использоваться $default конфигурация и&amp;nbsp;в этой базе данных будут создаваться тестовые таблицы. В&amp;nbsp;обоих случаях, к&amp;nbsp;имени таблиц будет добавляться префикс &amp;#147;test_suite_", для&amp;nbsp;предотвращения конфликтов с, возможно, уже&amp;nbsp;существующими таблицами.&lt;br />
&lt;!--notypo-->CakePHP&lt;!--/notypo--> выполняет следующие действия во&amp;nbsp;время теста, основанного на&amp;nbsp;прикреплениях:&lt;br />
&lt;div class="indent"> 1. Создает необходимые таблицы для&amp;nbsp;прикрепления&lt;br />
 2. Заполняет таблицы данными, если эти&amp;nbsp;данные представлены в&amp;nbsp;прикреплении&lt;br />
 3. Выполняет методы теста&lt;br />
 4. Очищает таблицы прикрепления&lt;br />
 5. Удаляет таблицы прикрепления из&amp;nbsp;базы данных&lt;/div>
&lt;hr noshade="noshade" size="1" />&lt;a name="h899-1">&lt;/a>&lt;h3>Создание прикреплений&lt;/h3>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
