Je souhaite tester les opérations de base de CRUD dans CakePHP (1.3) en utilisant SimpleTest.
Par exemple, je souhaite ajouter un nouvel enregistrement et m'assurer que je reçois un message d'erreur si la validation échoue et un nouvel enregistrement si la sauvegarde se passe bien. Est-il préférable d'écrire ces tests en tant que (1) tests de contrôleur pour l'action pertinente (par exemple add()), ou en tant que (2) Web Tests, en utilisant $ this-> post() ou $ this-> setField() ?CakePHP SimpleTest - Test du contrôleur vs test Web
Répondre
C'est une question ancienne, mais toujours pas de réponse donc je vais donner un coup de feu ...
Je crois que la première chose que vous devez faire est de mieux à part vos préoccupations. En ce moment, ce que vous faites, au moins pour moi, c'est un code smell ... ce qui veut dire que quelque chose ne va pas!
Comment suis-je arrivé à cette conclusion?
Eh bien, la question que vous avez posée et comment vous y répondez. La question que vous posez est:
« Comment tester une fonctionnalité de modèle ? »
Votre réponse:
« Testez-le à partir du contrôleur ou vue »
Ainsi, la première chose que je voudrais faire est de configurer une méthode dans la appropriée modèle pour faire ce que vous voulez. Ecrivez le code dont vous pensez avoir besoin. Enregistrez un enregistrement et renvoyez les valeurs appropriées que vous recherchez en vous basant sur les instructions conditionnelles que vous proposez. Après cela, j'aurais mis en place quelques appareils afin que vous ayez des données à tester. Vous pouvez en savoir plus sur les appareils CakePHP et la façon de les créer au manuel CakePHP, http://book.cakephp.org/view/1201/Preparing-test-data(Dans les projets futurs que je ferais les montages d'abord, mais c'est juste une préférence personnelle)
Une fois que vos appareils sont configurés, vous pouvez aller de l'avant et tester votre nouvelle méthode de modèle. Selon moi, les modèles de test sont les plus faciles à tester dans CakePHP. Je ne vais pas entrer dans les détails ici, seulement parce que le manuel de CakePHP, http://book.cakephp.org/view/1207/Testing-models, a un tas d'informations sur la façon de tester les modèles.
À ce stade, vous devez avoir une action de modèle correctement testée et correctement séparés. Cela étant dit, si vous vous sentez super courageux et que vous voulez tester votre code sous tous les angles, alors, bien sûr, installez un test de contrôleur pour vous assurer que l'action fonctionne correctement. Configurez un test Web pour vous assurer que l'ensemble du paquet fonctionne ensemble.
Tout d'abord, séparez vos préoccupations.
- 1. Test du contrôleur d'API Web ASP .NET
- 2. CakePHP Simpletest helper
- 3. Comment écrire un test AssertTags dans SimpleTest avec regex?
- 4. Problèmes de test du contrôleur
- 5. test du contrôleur Rspec échoue
- 6. test du contrôleur Rspec2 avec
- 7. Test du contrôleur Playframework2 [Java]
- 8. test CakePHP connexion
- 9. CodeIgniter 2.1 et SimpleTest - Réalisation d'un test simple
- 10. CakePHP SimpleTest enum problème
- 11. PHP SimpleTest - Utilisation de plusieurs cas de test
- 12. VS 2010 DB Test - Conditions de test multiples par test
- 13. Désactiver CakePHP Test Suite
- 14. Boost Test Vs Google Test Framework
- 15. Rails 3 Test contrôleur
- 16. CakePHP et Simpletest: Réinitialiser les données de base de données après l'exécution de chaque test?
- 17. Test utilisateur du site Web
- 18. CodeIgniter et SimpleTest - Comment faire mon premier test?
- 19. CakePHP - test d'injection sql échec
- 20. Théorie vs Test Nunit
- 21. Test en conditions réelles des contrôleurs CakePHP?
- 22. test Autorisez contrôleur
- 23. Test/Mock Contrôleur DotNetOpenAuth
- 24. Test du contrôleur RSpec - réponse vide.body
- 25. MVC 3 - Test du contrôleur d'unité Résultat
- 26. action du contrôleur imbriqué Test avec RSpec
- 27. Rails 3 - Mock/Stub - Test du contrôleur
- 28. Test de l'unité Grailles du contrôleur Grails
- 29. AngularJS test du contrôleur échouent avec RequireJS
- 30. rails ActionController test du contrôleur rspec :: RoutingError
Un grand merci pour la réponse informative. J'ai des tests pour les modèles, mais je souhaite tester que tout le processus fonctionne correctement, car il y a quelques manipulations sur les données avant qu'elles ne soient sauvegardées ou affichées. Je ne veux pas passer du temps à écrire à la fois des tests de contrôleurs et des tests sur le Web - je serais heureux d'apprendre ce que vous préférez. – user790665
Si vous voulez vous assurer que votre application fonctionne ensemble dans son ensemble, je dirais tous les trois. Modèle, contrôleur et test web. C'est la seule façon d'être même à distance en croyant que votre code est stable. Pas de tests == pas de stabilité – cspray