Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-03-2016 19:38:43

vanpet
Nouveau membre
Date d'inscription: 29-02-2016
Messages: 3

Doctrine dans PHPUnit

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

 

#2 25-03-2016 08:07:45

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: Doctrine dans PHPUnit

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 wink


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages