Как установить тестовый источник данных для конкретных моделей в CakePHP? - PullRequest
0 голосов
/ 28 февраля 2011

Из коробки CakePHP 1.x имеет источник данных default и test. При запуске модульных тестов он использует тестовую базу данных и перед каждым тестом может фиксировать данные из кода или импортировать данные из базы данных по умолчанию.

В приложении, которое я создаю, у меня есть пара случаев, когда было бы полезно указать в некоторых моделях приборов базу данных, отличную от test:

  1. источником данных является веб-служба, и возвращенные данные не могут быть легко реплицированы с тестовой базой данных,
  2. существуют большие таблицы только для чтения, и очень медленно (и не нужно) воссоздавать все эти данные перед каждым тестом.

Я посмотрел на CakeTestFixture, но пока не вижу хорошего способа сделать это. Возможно, каждая модель действительно хочет иметь свойство useDbConfig и useTestConfig?

В некоторых случаях я могу обойти это, сделав что-то вроде:

function startTest() {
    $this->Flock =& ClassRegistry::init('Flock');
    $this->Flock->Sheep->useDbConfig = 'readonly_db';
    $this->Flock->Dog->useDbConfig = 'soap';
}

Но это будет охватывать только определенные зависимости для одного тестового случая, и выполнение этого через набор тестов будет кошмаром обслуживания.

Кто-нибудь сталкивался с подобной ситуацией и было ли у вас решение?

1 Ответ

0 голосов
/ 01 марта 2011

создайте соединение $ test db в database.php, а остальное позаботится торт.Посмотрите на некоторые примеры в основных тестовых случаях, и вы увидите, что ничего особенного не добавлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...