Quels cadres existent pour tester un code Objective-C? Je voudrais un cadre qui s'intègre bien avec Apple Xcode.
Quels cadres existent pour tester un code Objective-C? Je voudrais un cadre qui s'intègre bien avec Apple Xcode.
Réponses:
Xcode inclut XCTest, qui est similaire à OCUnit , une infrastructure 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 la vue d'ensemble de Xcode: utilisation des tests unitaires .
Dans les 2 jours de Xcode, j'ai écrit une série de billets 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 largement 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 à faire tourner une boucle d'événement ou quelque chose comme ça dans la plupart des cas.
Cela permet de faire du développement piloté par les tests non seulement pour votre code au niveau du modèle, mais aussi pour votre code au niveau du contrôleur et même au niveau de la vue.
Découvrez GHUnit 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 installable en tant que framework (pour les applications Cocoa) avec une configuration cible simple (ou non); ou facile à intégrer dans votre projet iPhone. "
J'ai commencé à utiliser la plate-forme de test Google Toolbox pour iPhone, et cela fonctionne très bien pour moi.
Découvrez OCUnit . Le réseau de développeurs d'Apple a une excellente introduction .
Notez que le projet Google Toolbox pour 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 au SenTestingKit standard vous permettant de faire des tests unitaires d'interface utilisateur, des tests unitaires de liaison automatisés, le 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 d'interface utilisateur:
GTM a un support étendu pour les tests unitaires d'interface utilisateur. Il prend en charge le test à la fois de l'imagerie et / ou de l'état interne de presque tous les objets UI Cocoa / UIKit standard, et vous permet d'étendre facilement cette prise en charge à vos propres objets UI.
Reportez-vous à leur page " Vérification du code et tests unitaires " pour obtenir des instructions sur son utilisation.
Je suis arrivé à la conclusion que GHUnit est le cadre de test le plus avancé pour Objective-C. J'ai fait un tour d' horizon des frameworks de test sur mon blog. Il est le plus flexible en termes de déploiement (iphone, simulateur ou mac os natif) et affirme ses capacités. Parce qu'il est basé sur GTM, il hérite de tous les avantages de GTM par rapport à SenTestingKit mais en ajoute beaucoup plus. Un autre avantage est qu'il est maintenu très activement.
J'ai fait des efforts pour intégrer OCMock dans GHUnit, cela fonctionne 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.), alors vous pouvez envisager de vérifier Cedar . Cedar apporte des tests de style BDD à Objective-C, maintenant que le langage prend en charge les fermetures.
Nous utilisons volontiers Cedar pour nos projets iOS chez Pivotal Labs , 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 lesquelles ne le sont pas. La couverture de base des codes de ligne et de branche peut être générée avec l' outil GCOV . Si vous voulez générer de bons rapports de couverture HTML, il y a LCOV et ZCOV qui font exactement cela.
Je recommande gh-unit, il a une belle interface graphique pour les résultats des tests.
La prise en charge des tests unitaires intégrée à xcode (pour sa configuration simple) combinée à ocrunner (pour certains avantages de l'autotest / Growl) est actuellement ma configuration de test unitaire Obj-C préférée.
en voici beaucoup
Sen: te (le créateur du framework de test inclus avec Xcode) explique comment utiliser OCUnit avec un projet iPhone: simple-iphone-ipad-unit-test .
Matt Gallagher de Cocoa with Love a un très bon article sur les tests unitaires.
Je suggérerais de regarder Kiwi, un framework de test BDD open source pour iOS: Kiwi
Consultez le WIKI du projet pour démarrer ou téléchargez le livre de Daniel Steinberg "Test Driving iOS Development with Kiwi" test-driving-ios-development
J'utilise SimpleUnitTest 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. Wraps GTM.
Vous pouvez littéralement le déposer dans un projet actif et commencer à ajouter des tests unitaires dans les 3 minutes (ou moins).
Specta est un framework TDD (Test Driven Development) / BDD (Behavior Driven Development) moderne qui fonctionne au-dessus de XCTest. Il prend en charge les tests unitaires pour les projets iOS et Mac OS X.