Je tente d'exécuter des tests d'unité pour une bibliothèque statique qui tente de créer / écrire / lire un fichier dans le répertoire de documents. Comme il s'agit d'une bibliothèque statique et non d'une application pour l'IOS, tente de référencer la NSDocumentDirectory me renvoie le répertoire pour le formulaire P>
"/ users ////ibliothèque / support d'application / simulateur / documents" p>
Ce répertoire n'existe pas. Lors de la tentative d'accès à un répertoire à partir d'une application réelle, le NSDocumentDirectory renvoie quelque chose du formulaire: P>
"/ user / user // support de bibliothèque / application / iPhone simulateur / 4.2 / FEDBEF5F-1326-4383-A087-CDA1B865E61A / Documents" P>
(veuillez noter la version simulatrice ainsi que l'identifiant d'application dans le chemin du chemin) P>
Comment puis-je remédier à cette lacune dans le cadre de test unitaire pour les bibliothèques statiques qui implémentent des tests nécessitant des appels spécifiques d'application iOS? P>
Merci d'avance. P>
4 Réponses :
Le cadre de l'unité GH peut exécuter des tests d'unité dans le simulateur ou sur votre appareil. Cela résoudra non seulement votre problème, mais vous permettra de déboguer votre candidature (quelque chose que j'ai manqué dans d'autres cadres de test unitaire). P>
Pour être juste envers les autres outils de test tiers, il s'agit vraiment uniquement de Sentstingkit intégré Xcode qui ne prend pas en charge les tests de débogage et les exécuter sur un périphérique ou dans le simulateur.
Dans Xcode 4, vous pouvez définir des points d'arrêt dans les tests d'unité en utilisant SENTESTINGKIT / OCUNIT (le cadre de test de l'unité fourni avec Xcode). En outre, les tests logiques exécutés dans le simulateur et les tests d'application exécutés sur l'appareil, comme expliqué dans Guide de développement iOS: applications de test d'unité < / a> & Autres références Ocunit . Voir aussi: Tests iOS / Spécifications TDD / BDD et Test d'intégration et d'acceptation .
Je le résolvez pour moi-même. Dans ma phase de configuration de test de l'unité, je crée le répertoire de document s'il n'existe pas et le retire après la finition des tests. Cela me prend effectivement dépassé le blocage et continue mes tests logiques sans avoir à vous soucier de la spécificité de l'application iOS. P>
[[[[[[[[[NSFILEMANAGER ALLOC] INIT] RELIMERIMATURL: ERREUR FLIERURL: NULL] CODE>
Vous pouvez également résoudre ceci en se moquant de votre accès de fichiers afin que le test vérifie que votre code ait tenté d'écrire les données attendues sur le chemin indiqué par NsdocumentsDirectory sans jamais frapper le système de fichiers. p>
Utiliser Ensuite, supprimez le fichier dans nslibrarydirectory code> au lieu de
nsdocumentdirectory code> pour tests uniquement par Définition d'un
Test code> Préprocesseur Macro
. dératrement code> avec: p>