Ваша конфигурация базы данных выглядит правильно ...
Вы не должны делать
$this->Comment->useDbConfig = 'test_suite';
Моя рекомендация
Вы должны использовать оболочку cake bake , чтобы создать модели для всех ваших моделей и позволить им перезаписать их (очевидно, сначала создайте резервную копию любых пользовательских моделей). Вам не нужно проходить через запросы на проверку и сопоставление (например, «n»), но да для всех перезаписей (опять же, сначала сделайте резервную копию кода).
Когда вы это делаете, он также создает базовый тестовый пример и приспособление для модели.
Используйте созданный тестовый пример и добавьте к нему ...
То, что вам нужно, - это называть КАЖДЫЙ единственный используемый вами прибор и все связанные с ним приборы ... всем ассоциациям hasMany и ownTo и HABTM требуется загрузить прибор, но они не будут автоматически вызваны в тесте. люкс.
note.test.php
<?php
App::import('Model', 'Note');
class NoteTestCase extends CakeTestCase {
var $Note = null;
var $fixtures = array(
'app.note',
'app.version',
'app.corp',
'app.advertisement',
'app.member',
'app.member_detail',
'app.member_newsletter',
'app.groups_members_join',
'app.group',
'app.job',
'app.job_category',
'app.jobs_categories_join',
);
function startTest() {
$this->Note =& ClassRegistry::init('Note');
}
function testNoteInstance() {
$this->assertTrue(is_a($this->Note, 'Note'));
}
function testNoteFind() {
$this->Note->recursive = -1;
$results = $this->Note->find('first');
$this->assertTrue(!empty($results));
$expected = array('Note' => array(
'id' => 1,
'model' => 'Lorem ipsum dolor sit amet',
'model_id' => 1,
'created' => '2010-03-30 16:26:59',
'member_id' => 1,
'body' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida,phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam,vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit,feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.',
'is_active' => 1
));
$this->assertEqual($results, $expected);
}
function testJobWithNotes() {
$this->Job =& ClassRegistry::init('Job');
$uniqueValue = rand(0,time());
$savedJob = $this->Job->saveAll(array(
'Job' => array(
'title' => "Test Job [$uniqueValue] from ".__FILE__,
),
'Note' => array(
array(
'model' => "Job",
'body' => "Here is a unique value [$uniqueValue]")
)));
$this->assertTrue($savedJob);
$this->assertEqual($this->Note->find('first',array(
'fields' => array('body'),
'conditions' => array('model_id' => $this->Job->id, 'model' => $this->Job->name))),
array('Note'=>array('body'=>"Here is a unique value [$uniqueValue]")));
}
}
?>
И на всякий случай, вот это
note_fixture.php
<?php
class NoteFixture extends CakeTestFixture {
var $name = 'Note';
var $fields = array(
'id' => array('type'=>'integer', 'null' => false, 'default' => NULL, 'key' => 'primary'),
'model' => array('type'=>'string', 'null' => false, 'default' => NULL, 'length' => 32),
'model_id' => array('type'=>'integer', 'null' => false, 'default' => NULL),
'created' => array('type'=>'datetime', 'null' => false, 'default' => NULL),
'member_id' => array('type'=>'integer', 'null' => false, 'default' => NULL),
'body' => array('type'=>'text', 'null' => false, 'default' => NULL),
'is_active' => array('type'=>'boolean', 'null' => false, 'default' => '1'),
'indexes' => array('PRIMARY' => array('column' => 'id', 'unique' => 1))
);
var $records = array(array(
'id' => 1,
'model' => 'Lorem ipsum dolor sit amet',
'model_id' => 1,
'created' => '2010-03-30 16:26:59',
'member_id' => 1,
'body' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida,phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam,vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit,feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.',
'is_active' => 1
));
}
?>