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/>
- En el archivo de configuración agregar dentro del indice components
[indent]
'components' => array(
...
'fixture' => array(
'class' => 'system.test.CDbFixtureManager',
),
...
[/indent]
- 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');
}