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 test
records 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 Jan 11, 2:33 pm, 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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---