lunes, 28 de abril de 2014

Extra de Fixtures

Al tener una aplicación organizada en plugins puede que tengas modelos relacionados pero que residen en diferentes plugins.
Resulta un poco contradictorio tener que modificar las fixtures en un plugin para hacer tests en otro, lo que rompe la regla de aislamiento que deberían tener los tests unitarios.
Y el caso es que esto se puede evitar bastante fácilmente: tan sólo has de crear los archivos de fixtures en el plugin al que estás haciendo tests. De este modo tienes juegos de datos específicos para el plugin y no tienes que tocar para nada el otro, que quizá ya tenga sus tests completos.
Para usar estas fixtures tienes que indicarlas en el array $fixtures del TestCase. Por ejemplo, si estoy haciendo el test del modelo Item del plugin Contents y necesito fixtures del modelo Tag que está en el plugin Tags, mi array $Fixtures para ItemTestCase sería más o menos así:
var $fixtures = array(
   'plugin.contents.item',
   'plugin.contents.tag'
);
En la carpeta fixtures tendré un archivo:
tag_fixture.php
que en su caso, podría copiar de su ubucación original si ya tengo uno en el plugin Tags.