Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai quelques problèmes pou tester une simple controlleur qui affiche le résultat d'un find() sur la page.
Mon controlleur fait ceci:
$product = $this->entityManager->getRepository('App\Entity\Product')->find($id);
Et le test (qui hérite de AbstractHttpControllerTestCase) fait ceci :
public function testIndexActionCanBeAccessed()
{
$this->dispatch('/product/1);
$this->assertResponseStatusCode(200);
}
Mais evidemment, la DB de test étant vide, je n'ai pas le résultat escompté. Comment puis-je remplir la DB avant de lancer le test?
Hors ligne
Bonjour,
Je sais que cela ne réglera pas ton problème, mais tu devrais envisager de déplacer tes récupération de données, dans des "services" afin de respecter MVC (plusieurs sujet trainent sur le forum a ce sujet). Tu verras déjà que tes test Unitaires seront plus simple a écrire.
Pour ton problème, j'ai jamais trouvé utile de tester les méthodes que j'appelle tierce (doctrine a ses propres test unitaires). D'autre part si tes tests sont dépendants des données ce ne sont pas vraiment des tests unitaires, mais des tests fonctionnels.
Un test unitaire test juste ton code, et controle l'enchainemment de tes appels sans traiter de donnée, un bon test unitaire n'a pas forcément besoin d'une base de donnée, et en plus ne fait ni insert, ni update, ni select, ni delete.
Utilise des mock
Hors ligne