2011-04-13 6 views
0

Ainsi, l'infrastructure de base de données phpunit de Zend permet de précharger une base de données avec des tables. Cependant, cela m'empêche d'utiliser @dataProvider avec la base de données car il semble que @dataProvider soit exécuté avant que zend ne recharge la base de données. Cela provoque la désynchronisation des tables de la base de données.Réorganisation de @dataProvider et configuration de la base de données

Y at-il un moyen de réorganiser cette procédure afin que zend recharge la base de données, puis @dataProvider est appelée?

Répondre

1

Quand Zend charge-t-il votre base de données? Si vous l'appelez spécifiquement depuis setUp(), vous pouvez déplacer l'appel vers la méthode du fournisseur de données. Ce n'est pas idéal, mais la façon dont PHPUnit appelle les fournisseurs de données est très importante pour son architecture. Sebastian envisage de retravailler cela comme un point, mais je ne sais pas à quelle hauteur il figure sur la liste des priorités. Editer: Sebastian a créé un ticket qui traite des tests de réorganisation basés sur @depends - ne pas changer lorsque les fournisseurs de données sont appelés. Mes excuses pour la confusion.

+0

Zend étend le cas de test de base de données et écrase cette méthode: 'getSetUpOperation fonction protégé() { return new PHPUnit_Extensions_Database_Operation_Composite (array ( nouveau Zend_Test_PHPUnit_Db_Operation_Truncate(), nouveau Zend_Test_PHPUnit_Db_Operation_Insert(), )); } ' –

+0

@Ray H - Cette méthode est probablement appelée depuis' setUp() 'ce qui signifie que vous êtes bloqué. Vous pouvez copier et modifier la classe de cas de test de Zend au lieu de l'étendre et demander aux méthodes du fournisseur de données de configurer les données. C'est ce que j'ai fait pour notre contrôleur Zend et voir les tests de script car j'avais besoin de plus de contrôle et je voulais les séparer. –

Questions connexes