Unité d'essais privés de la méthode objective C
- Je utiliser GHUnit
. Je veux de l'unité de test des méthodes privées et ne sais pas comment les tester. J'ai trouvé beaucoup de réponses sur le pourquoi ou pourquoi pas pour tester des méthodes privées. Mais ne trouve pas comment les tester.
Je ne voudrais pas discuter de savoir si je dois tester les soldats ou non, mais mettra l'accent sur la façon de le tester.
Quelqu'un peut-il me donner un exemple de procédure de test de la méthode privée?
- De la même manière que vous testez une méthode normale, ce qui est exactement le problème auquel vous êtes confronté?
- La décision de tester les méthodes privées est une partie de l'espace du problème, pas une partie de l'espace de solution.
- Il dit
No visible @interface for myClass declares the selector 'myMethod'
- Il dit
no known instance method for selector 'myMetohd'
. - Double Possible de Comment puis-je tester une classe qui a privé les méthodes, les champs ou à l'intérieur des classes?
Vous devez vous connecter pour publier un commentaire.
Méthodes en Objective-C ne sont pas vraiment privé. Le message d'erreur que vous obtenez, c'est que le compilateur ne peut pas vérifier que la méthode que vous appelez existe comme il n'est pas déclarée dans l'interface publique.
Le moyen de contourner ce problème est d'exposer les méthodes privées dans une catégorie, ce qui indique au compilateur que les méthodes existent.
Donc ajouter quelque chose comme cela pour le haut de votre fichier de scénario de test:
SUTClass est le nom de la classe que vous écrivez des tests pour.
Ce sera assurez-vous que votre méthode visible, et vous pouvez le tester sans les avertissements du compilateur.
SUTClass_Internal.h
Un peu en retard, mais je viens de recevoir sur le TDD train.
Méthodes privées ne devraient pas être testé. Parce que vous écrivez des méthodes privées à l'appui de vos méthodes publiques, donc à tester vos méthodes publiques indirectement tests les méthodes privées qui les soutiennent.
Le principe "méthodes privées ne devraient pas être testé" est pris en charge par le principe "lorsque vous avez besoin de tester les méthodes privées, cela signifie probablement que vous devez déplacer ces méthodes à la classe", donc de les rendre publics.
D'accord avec @Seigneur Zsolt
Veuillez aussi noter que la prochaine (à partir de Piloté par les tests de Développement iOS ISBN-10: 0-321-77418-3, ISBN-13: 978-0-321-77418-7 )
Si une méthode est privé, vous ne devez le tester.
Pensez à ce sujet. Vous devez tester le comportement et du contrat de vos méthodes plutôt que la mise en œuvre interne