2010-05-05 5 views
3

Nous avons un ensemble de tests unitaires qui testent un grand nombre de pages Web et de services API REST. Actuellement, lorsque nos tests s'exécutent, ces tests sont extraits de ces pages, mais cela peut parfois prendre un certain temps, et il semble également que les tests devraient tester davantage notre code - et ne pas se contenter de les mettre en veille et de répondre (si ça a du sens..).Tests unitaires et appareils

Est-il préférable d'enregistrer une réponse api valide et avec les tests unitaires charger cette lors de la configuration?

Pensées?

+0

Je suis curieux de connaître la validité des simulacres en tant que projet progresse. Il semble le plus souvent que le BE change et casse le FE et personne ne le voit jusqu'à ce que le QA trouve un bogue dans l'interface utilisateur. imho un test FE pour assurer l'intégrité de la BE est une bonne idée et devrait au moins en quelque sorte en corrélation avec vos simulacres, encoches ou autres. – Shanimal

Répondre

0

Je préfère utiliser une source de données de test/simulation au lieu de la source réelle. Cela vous permettra de lire les données sans réellement utiliser les ressources du réseau et donnera de meilleures performances (en fonction de votre architecture, il peut être ou pas facile de changer les sources de données que vous utilisez). Mais tout aussi important, il vous permettra de jouer avec les données que vous redonnez, et vous permettra de tester les cas de bords, les réponses de données invalides, etc. En fonction de ce que votre application fait avec les données, cela peut être important.

4

Il semble que vous essayez de tester trop à la fois oui.

Vous devez tester le code qui génère la réponse pour l'API Rest (si ce code est sous votre cotrole) et le code qui l'utilise complètement séparément. Si vous ne contrôlez pas le code qui génère l'API, vous devez utiliser le code avec de fausses réponses API valides et les utiliser pour vos tests. S'appuyer sur les pages en cours et répondre ressemble beaucoup plus aux tests d'intégration. Si vous comptez sur une API externe, il est toujours intéressant d'avoir un test d'intégration pour valider que l'API se comporte toujours comme prévu.

+0

@Axelle vous avez raison. Trois types de test. Test du service d'API, test de pages Web avec un service d'API simulé et tests d'intégration. – Gutzofter

0

La façon dont je traiterais ceci est d'utiliser le moqueur. Supposons que vous ayez une classe chargée d'appeler les services externes, et une classe distincte qui utilise ces résultats. Vous pouvez créer un simulacre de la classe qui appelle les services, et retourner simplement un résultat particulier que vous voulez. Ensuite, vous pouvez tester la classe qui a besoin des résultats sans traiter les appels externes.

http://en.wikipedia.org/wiki/Mock_object
http://martinfowler.com/articles/mocksArentStubs.html