2010-10-18 6 views
4

J'écris des tests unitaires pour une application pour iPhone en utilisant l'objectif c. Je veux utiliser une seule variable lors de la compilation pour le cas de test par exempleen utilisant des variables pour les tests unitaires seulement

#ifdef UNIT_TESTING 
@synthesize requestFinished, networkAvailable;//etc 
#endif 

maintenant où dois-je définir UNIT_TESTING que lorsque je compile pour les tests unitaires, il doit entrer dans ce bloc de code .... sinon devrait passer devant elle

Répondre

3

Définissez-le dans le paramètre de construction "Macros préprocesseur" dans chacune de vos cibles, en particulier celle où vous voulez que cette macro soit définie, la cible de l'ensemble de tests unitaires.

+0

Que faire si le projet pour lequel je veux écrire des tests unitaires dépend d'une bibliothèque statique dont j'ai besoin pour utiliser ces macros? Le ifdef n'est jamais défini puisque la bibliothèque est déjà compilée, non? – Genericrich

+0

@Genericrich: Droit. Vous devez définir les macros dans la cible de la bibliothèque lors de la construction de la bibliothèque. Si vous devez utiliser les macros aux deux endroits, placez-les dans un en-tête et importez-les dans les en-têtes de préfixe des deux cibles. –