У меня есть несколько тестовых классов PHPUnit, которые используют приборы. У меня для 10 таблиц светильники определены. Структура каталогов:
tests
fixtures
table1.php
...
table10.php
unit
MyTestClass.php
У меня сейчас тестовый класс (MyTestClass.php
), в котором я хочу заполнить только 2 из этих таблиц. У меня есть следующий код в этом классе.
class BaseACAExportTest extends CDbTestCase
{
public $fixtures = array(
'table1' => 'Model1',
'table2' => 'Model2'
);
public function setUp()
{
// Call the parent setUp to set up the fixtures
parent::setUp();
die();
}
public testMe()
{
// Test here
}
}
Функция TruncateDatabase
это специальная вспомогательная функция, которая усекает все 10 таблиц. Я проверил, что эта функция работает. Я запускаю тесты и проверяю после die
постановка базы данных. В нем я вижу все 10 таблиц, а не только две таблицы, которые я определил в fixtures
, Почему он заполняет все таблицы, определенные в каталоге fixtures
? Есть ли способ обойти это?
Это дизайн менеджера приспособлений Yii.
Все файлы в папке fixtures используются для заполнения вашей базы данных.
Что ты пишешь в $fixtures
Свойство — это просто способ более быстрого доступа к данным осветителей в ваших тестах.
Вы можете обойти это, только написав свой собственный менеджер приборов и заменив им по умолчанию.
Других решений пока нет …