A partir d'une application déjà en développement, j'ai exécuté les instructions données dans le Guide de développement iPhone - Applications de tests unitairesLinker Erreur: iPhone Unité de référencement Bundle test cours App
Je peux comprendre avec succès et utiliser mon application de classes dans les tests de style Application qui s'exécutent sur le périphérique et transmettent leurs résultats à la console.
Si j'ajoute la ligne de code suivante:
STAssertTrue([viewController isKindOfClass:[LoginViewController class]], @"Top view controller is not LoginViewController");
L'erreur de compilation suivante est générée:
Undefined symbols:
"_OBJC_CLASS_$_LoginViewController", referenced from:
[email protected] in LoginViewTest.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Je peux fournir des informations plus de configuration pour le projet et la cible d'essai, mais le Le programme d'installation fonctionne sans la ligne [LoginViewController class]
dans la source de test.
Sans cette ligne, je peux référencer la classe, utiliser ses propriétés et lui envoyer des messages avec succès.
Existe-t-il un paramètre de génération de liens ou une option de chargement de groupe requis pour essayer d'utiliser une classe App de cette manière? Ou devrais-je trouver un autre type de test pour confirmer que la classe d'un objet est celle attendue?
Cela m'a orienté dans la bonne direction, merci. Mon problème était que j'avais changé le "Nom du produit" dans la cible principale, et ainsi j'ai dû mettre à jour le "chargeur de paquet" dans la cible de test. –
Excellente réponse, merci beaucoup en effet. Pas très intuitif lorsque vous configurez des tests sur un projet existant. De toute façon ça marche maintenant !! De plus, il m'a fallu un certain temps pour trouver le réglage Bundle chargeur, assurez-vous « Tous » est cochée en haut des paramètres de compilation et non « Basic » – Sam
Ugh, enfin. J'ai fait la même chose et je savais ce qui se passait, mais je ne pouvais pas pour la vie de moi trouver le damné bâtiment pour le réparer. Merci beaucoup. – DougW