Robby, can you share your working code with us, because I am having the same problem as sidr. I want to "reuse" app model database field definition (the one that CakePHP auto resolves from a database) for my tests but with record set provided in fixture.
- app model auto filed definition and real data works - fixture field definition and fixture record set works - app model auto filed definition and fixture record set doesn't work (was it ever intended?) p.s. cake version is 1.2.0-6311 beta ivl On 11 jan., 14:33, Robby Anderson <[EMAIL PROTECTED]> wrote: > I had a beast of a time with fixtures as well, but finally got them to > work. Looking at your test model code, try removing the $useTable from > the TestTasks declaration. I think that is the line that is forcing > the production table instead of the test_suite table. > > On Jan 11, 3:48 am, sidr <[EMAIL PROTECTED]> wrote: > > > I have the models Task and User > > <? > > class Task extends AppModel { > > var $name = 'Task'; > > var $belongsTo = array ( 'Author' => array ( > > > > 'className' => 'User', > > > > 'conditions' => '', > > > > 'order' => '', > > > > 'foreignKey' => 'user_id' > > )); > > ...} > > > ?> > > > <? > > class User extends AppModel { > > var $name = 'User'; > > ...} > > > ?> > > > Also I`m using fixtures > > > // user_test_fixture.php > > <?php > > class UserTestFixture extends CakeTestFixture { > > var $name = 'UserTest'; > > var $useTable = 'users'; > > > var $import = 'User'; > > > var $records = array( > > array ( > > 'id' => '1', > > 'username' => 'admin', > > 'password' => '4fea28c4a708335fbd36db8166edc95c', //admpass > > 'fullname' => 'Admin', > > 'blocked' => '0', > > 'created' => '2007-10-1 10:39:23', > > 'updated' => '2007-10-1 10:41:31' > > ) > > );} > > > ?> > > > // task_test_fixture.php > > <?php > > class TaskTestFixture extends CakeTestFixture { > > var $name = 'TaskTest'; > > var $useTable = 'tasks'; > > var $import = 'Task'; > > > var $records = array( > > array ( > > 'id' => '1', > > 'name' => 'Project-1', > > 'info' => 'Prj-1 description', > > 'user_id' => '1', > > 'parent_id' => '0', > > 'created' => '2007-10-26 19:05:52', > > 'modified' => '2007-10-26 19:05:00', > > 'starttime' => '0000-00-00 00:00:00', > > 'deadline' => '2007-11-15 02:57:49', > > 'hours' => '40', > > 'done' => '0', > > 'hidden' => '0' > > ) > > ); > > > } > > > And the following I have in my task.test.php > > > <? > > loadModel( 'Task' ); > > > class TaskTest extends Task { > > var $name = 'TaskTest'; > > var $useTable = 'tasks'; > > var $useDbConfig = 'test_suite'; > > > } > > > class TaskTestCase extends CakeTestCase { > > var $fixtures = array( 'task_test', 'user_test' ); > > var $model = null; > > > function testCreate(){ > > $this->model =& new TaskTest(); > > } > > > function testAuthor(){ > > $this->model->id = 2; > > $task = $this->model->read(); > > > $this->assertEqual( $task['Author']['username'], 'admin' ); > > } > > > } > > > But the test fails because $task['Author'] contains data from working > > database, not from the fixture. > > > How could I fix it? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---