Question

Quels frameworks existent pour tester unitairement le code Objective-C ?Je voudrais un framework qui s'intègre bien avec Apple Xcode.

Était-ce utile?

La solution

Xcode inclut XCTest, qui est similaire à OCUnite, un framework de tests unitaires Objective-C, et prend entièrement en charge l'exécution de tests unitaires basés sur XCTest dans le cadre du processus de construction de votre projet.La prise en charge des tests unitaires de Xcode est décrite dans le Présentation de Xcode :Utilisation des tests unitaires.

À l'époque de Xcode 2, j'ai écrit une série d'articles de blog sur la façon d'effectuer certaines tâches courantes avec les tests unitaires Xcode :

Malgré l'utilisation d'OCUnit plutôt que de XCTest, les concepts sont en grande partie les mêmes.

Enfin, j'ai également écrit quelques articles sur la façon d'écrire des tests pour les interfaces utilisateur Cocoa ;la façon dont Cocoa est structuré le rend relativement simple, car vous n'avez pas besoin de faire tourner une boucle d'événements ou quelque chose comme ça dans la plupart des cas.

Cela permet d'effectuer un développement piloté par les tests non seulement pour votre code au niveau du modèle, mais également pour votre code au niveau du contrôleur et même au niveau de la vue.

Autres conseils

Vérifier Unité GHU par Gabriel Handford :

"Les objectifs de GHUnit sont :

Exécute des tests unitaires dans Xcode, vous permettant d'utiliser pleinement le débogueur Xcode.Une interface graphique simple pour vous aider à visualiser vos tests.Afficher les traces de pile.Être instalable comme un cadre (pour les applications de cacao) avec une configuration cible simple (ou non);ou facile à emballer dans votre projet iPhone. "

J'ai commencé à utiliser le banc d'essai de la boîte à outils Google pour iPhone, et cela fonctionne très bien pour moi.

google-toolbox-pour-mac

Vérifier OCUnite.Le réseau de développeurs d'Apple a une excellente introduction.

Notez que le projet Google Toolbox for Mac (GTM) étend/augmente simplement le framework SenTestingKit d'Apple (qui est lui-même basé sur OCUnit).Comme on dit sur le site du projet :

GTM a plusieurs améliorations du SenteStingKit standard vous permettant de faire des tests unitaires d'interface utilisateur, des tests de liaison automatisés, un suivi des journaux et des tests unitaires sur l'iPhone, ainsi que des outils pour effectuer des tests statiques et dynamiques de votre code.

Notez le commentaire suivant sur les tests de l'interface utilisateur :

GTM a une prise en charge approfondie des tests unitaires d'interface utilisateur.Il prend en charge le test de l'imagerie et / ou de l'état interne de presque tous les objets standard de Cacoa / Uikit, et vous permet de prolonger facilement ce support à vos propres objets d'interface utilisateur.

Voir leur "Vérification du code et tests unitaires" pour obtenir des instructions sur la façon de l'utiliser.

Je suis arrivé à la conclusion que GHUnit est le framework de test le plus avancé pour Objective-C.j'ai fait un résumé de frameworks de test sur mon blog.C'est le plus flexible en termes de déploiement (iphone, simulateur ou mac os natif) et de capacités affirmées.Parce qu'il est basé sur GTM, il hérite de tous les avantages de GTM par rapport à SenTestingKit mais en ajoute également bien plus.Un autre avantage est qu'il est entretenu de manière très active.

J'ai mené des efforts pour intégrer OCMock dans GHUnit, ça marche très bien !.Vous pouvez obtenir le code sur github.

Je me rends compte que c'est une vieille question, mais si vous préférez les tests de style BDD (rspec, Jasmine, etc.) aux tests de style xUnit (Test :: Unit, JSUnit, JUnit, etc.), vous pouvez envisager de consulter Cèdre.Cedar apporte les tests de style BDD à Objective-C, maintenant que le langage prend en charge les fermetures.

Nous utilisons volontiers Cedar pour nos projets iOS sur Laboratoires pivots, et nous travaillons activement à son amélioration.Tous les commentaires ou suggestions sont les bienvenus à cedar-discuss@googlegroups.com

Je recommanderais également d'utiliser des outils de couverture pour voir quelle partie du code est couverte par des tests unitaires et laquelle ne le est pas.Une couverture de base des lignes et des codes de succursale peut être générée avec le GCOV outil.Si vous souhaitez générer de jolis rapports de couverture HTML, il existe LCOV et COVZ qui font exactement cela.

Je recommande gh-unit, il a une belle interface graphique pour les résultats des tests.

http://github.com/gabriel/gh-unit/tree/master

Le Prise en charge des tests unitaires intégrée à Xcode (pour sa configuration simple) combiné avec ocrunner (pour un peu de bonté d'autotest/Growl) est actuellement ma configuration de test unitaire Obj-C préférée.

Sen:te (le créateur du framework de test inclus avec Xcode) explique comment utiliser OCUnit avec un projet iPhone : test unitaire simple pour iPhone et iPad.

Matt Gallagher de Cocoa with Love a un très bon article sur les tests unitaires.

Je suggérerais d'examiner Kiwi, un framework de test BDD open source pour iOS :kiwi

Consultez le WIKI du projet pour démarrer ou procurez-vous le livre de Daniel Steinberg "Test Driving iOS Development with Kiwi"test de conduite-développement-ios

J'utilise SimpleUnitTest qui fonctionne avec les bibliothèques iPhone et iPad.

http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

Il est livré avec un modèle Xcode de test unitaire pour ajouter facilement une classe de test unitaire.Enveloppe GTM.

Vous pouvez littéralement le déposer dans un projet actif et commencer à ajouter des tests unitaires en 3 minutes (ou moins).

Spectres est un framework TDD (Test Driven Development)/BDD (Behavior Driven Development) moderne qui s'exécute sur XCTest.Il prend en charge les tests unitaires pour les projets iOS et Mac OS X.

J'espère que vous pourrez utiliser 'SenTestKit', à partir duquel vous pourrez tester chaque méthode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top