Usando Fixtures En Yii

Hola.

He empezado a usar los fixtures para realizar pruebas unitarias, voy a compartir como configurar correctamente el fixture, ya que al principio he obtenido el error: Unknown property y es posible que algunas personas esten pasando por el mismo inconveniente.

En mi ejemplo el modelo de datos se encuentra dentro de un modulo ( ejemplos.models )<br/>

  1. En el archivo de configuración agregar dentro del indice components

[indent]


'components' => array(    

  ...

  'fixture' => array(

            'class' => 'system.test.CDbFixtureManager',

        ),

   ...

[/indent]

  1. Crear el archivo fixture dentro de la carpeta protected\tests\fixtures, el archivo debe tener el [indent]nombre de la tabla sobre la cual vamos a crear el fixture.<br/>

Por ejemplo si en la base de datos la tabla se llama: tblejemplo, nuestro archivo dentro de fixture se debe llamar: tblejemplo.php[/indent]

protected\tests\fixtures\tblejemplo.php




<?php

return array(

    'test1'=>array(      

        'createDate'=>'2013-07-06 02:02:03',

        'modifiedDate'=>'2013-07-07 02:02:03',

        'reportId'=>'9',

        'params'=>'',

        'recipients'=>'test@gmail.com,exmple@hotmail.com',

        'frecuency'=>'30',

        'lastExecutedDate'=>'2013-07-08- 05:23:23',

        'reportName'=>'test report'        

    ),    

);



Creamos nuestro test




class UsingFixtureTest extends CDbTestCase

{


    /**

     * Fixture de Yii

     * Se usa la ruta del modulo para que yii puede importar el modelo

     */

    public $fixtures=array(

        'ejemplos'=>'ejemplos.models.Ejemplo',

    );

    

    /**

     * Test para probar el uso de fixture

     * 

     * 

     */

    public function testFixture()

    {                

        //en la variable $this->ejemplos tenemos el contenido de nuetro fixture

        // y lo podemos usar en todos nuestros test, en este caso es un array de 

        // de una posición

        $arrEjemploList = $this->ejemplos;  

        //para acceder a la posición específica de un set de datos del fixture    

        //retorna un array

        $arrFirstExample = $this->ejemplos['test1'];           

        //si queremos obtener una instancia de ActiveRecord

        //obtiene un objeto AR

        $objFirstExample = $this->ejemplos('test1'); 


    }

   



hola José Bermúdez

Estuve mirando como se hace la pruebas unitarias en yii pero el problema es que estoy trabajando en yii2 y no es el mismo proceso pues estuve mirando y no son los mismo pasos para yii2 agradeceria tu ayuda si tienes idea como hacerlo para yii22.

saludos.