7
votes

Test de l'unité de la bibliothèque statique qui implique NsdocumentDirectory et d'autres appels spécifiques à l'application iOS

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

"/ users ////ibliothèque / support d'application / simulateur / documents"

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:

"/ user / user // support de bibliothèque / application / iPhone simulateur / 4.2 / FEDBEF5F-1326-4383-A087-CDA1B865E61A / Documents"

(veuillez noter la version simulatrice ainsi que l'identifiant d'application dans le chemin du chemin)

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?

Merci d'avance.


0 commentaires

4 Réponses :


0
votes

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).

Télécharger GH-Unit

Comment installer GH-Unit


2 commentaires

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 .



3
votes

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.


1 commentaires

[[[[[[[[[NSFILEMANAGER ALLOC] INIT] RELIMERIMATURL: ERREUR FLIERURL: NULL]



3
votes

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.


0 commentaires

2
votes

Utiliser nslibrarydirectory au lieu de nsdocumentdirectory pour tests uniquement par Définition d'un Test Préprocesseur Macro .

Ensuite, supprimez le fichier dans dératrement avec: xxx


0 commentaires