Tests unitaires et tests d’interface sur iPhone : État des lieux) Après la mise à jour du SDK4 et le passage à Xcode 3.2.3 nous avons eu une désagréable surprise : nos frameworks de tests ne compilaient plus et jusqu'à aujourd'hui on trouve très peu d'information sur la façon de régler ce problème. Voici comment nous nous y sommes pris :
L'erreur de build rencontrée est la suivante :
Undefined symbols: "_OBJC_CLASS_$_OCMockObject", referenced from: objc-class-ref-to-OCMockObject in WebServiceTest.o ld: symbol(s) not found
Jusqu'à maintenant nous ajoutions la bibliothèque OCMock.framework à la phase de build "Link Binary With Libraries". Il semble que l'on ne peut plus utiliser la version précompilée du Framework disponible dans la section téléchargement du site d’OCMock.
Pour faire fonctionner OCMock avec Xcode 3.2.3 vous devez :
Vous buildez à nouveau et... rien ne se passe.
Apres OCMock c'est maintenant le script de Google-Toolbox-for-Mac qui reste bloqué indéfiniment sur cette erreur :
SBSetAccelerometerClientEventsEnabled failed: (ipc/ send) invalid destination port
Là encore la solution est de récupérer les sources de GTM sur le trunk du repository, puis de remplacer tous les fichiers nécessaires aux tests iPhone comme indiqué dans le guide d'installation :
http://code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting
Maintenant vous pouvez enfin relancer vos tests !