Je commence au travail avec PHPUnit avec Kohana. Mon application dispose de nombreux contrôleurs qui apportent simplement des données provenant d'une forme, valide et des insertions / mises à jour / supprime / / - / de la base de données. Comment devrais-je écrire un cas de test pour cela? P>
Je sais que si je veux tester une fonction, je rédige une fonction de fournisseur de données et simplement comparer la valeur retournée avec l'attendu. Mais mes données d'entrée (données des formulaires) sont transmises dans $ _ POST code> variable. Comment devrais-je tester cela? Et après cela, devrais-je vérifier si des données insérées sont vraiment dans la base de données? S'il vous plaît donner mes lignes directrices pour ce type de tests ou de liens vers certains exemples / tutoriels. Merci. P>
3 Réponses :
Tout d'abord, si vous testez toutes les tâches de recevoir les données publiées à la vérification des valeurs de la base de données, ce n'est plus unitaire: vous ne testez pas un composant isolément des autres, mais vous testez l'intégration de ces composants ensemble. P>
Cela rend les choses plus difficiles à tester: p>
Notez que je n'ai pas dit que ce type d'essais «intégration» n'est pas utile, BTW; -) P>
Néanmoins, forgeant le tableau code> _ / code> est assez simple: il n'est pas en lecture seule et vous pouvez stocker ce que vous voulez. P>
Donc, au début de votre test de test, rien ne vous empêche d'injecter des données dont vous avez besoin. p>
Qu'est-ce que Pascal a dit. Notez également qu'il existe des outils spécifiquement pour tester l'interaction sur le niveau HTTP / Navigateur. Vous pouvez utiliser les cas de test Web de SimpleTest (utilise un navigateur émulé / scriptable). Si vous préférez PHPUNIT, je pense que vous pouvez utiliser assez facilement le navigateur de SimpleTest de PHPUnit. Sinon, il y a l'IDE Sélénium plus lourd, pour lequel PHPUNIT a une intégration. P>
Je suis d'accord avec Pascal que la matrice $ _Post n'est pas un tableau en lecture seule et vous pouvez le manipuler si nécessaire. De plus, cela dépend de votre cadre, Zendframework fournit la flexi-globilité de la freat pour manipuler les variables. comme dans l'exemple dans la liaison p>