J'essaie de mettre en œuvre des tests d'application comme décrit here. Jusqu'à présent, tout va bien, mais je ne parviens pas à tester, par exemple, l'emplacement de l'appareil en utilisant Core Location. J'ai ajouté le Framework approprié à la Cible, et j'ai lancé la mise à jour de l'emplacement, mais je n'ai aucune idée de la façon d'attendre le chargement de l'emplacement, la suite de tests se termine juste avant la fin du second thread. Aidez-moi s'il vous plaît à trouver un moyen de tester ce genre de choses.iPhone: test d'application et emplacement principal
Répondre
Si vous comptez sur CLLocationManager
vous pouvez mettre en œuvre ces deux méthodes de délégué CLLocationManagerDelegate
:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
Ensuite, vous définissez le délégué CLLocationmanager
et lui dire startUpdatingLocation
. Si vous obtenez didUpdateLocation
(avec oldLocation
réglé à zéro) cela signifie que vous avez maintenant un emplacement et vous pouvez considérer le test comme un succès (assurez-vous de désactiver la mise à jour). Si vous obtenez l'autre, il y a eu une erreur de localisation.
Si vous comptez sur MapKit et utilisent le mécanisme de mise à jour-emplacement de l'utilisateur de » MKMapView
, alors jetez un oeil à ma réponse à this question et mettre en œuvre la section d'observateur (observeValueForKeyPath
) pour être informé lorsque la carte a un emplacement (succès) ou mettre en œuvre mapViewDidFailLoadingMap
de MKMapViewDelegate pour être averti s'il y avait une erreur.
Ramin, désolé, il semble que je ne pouvais pas m'expliquer. Mon problème n'est pas comment obtenir l'emplacement dans la vraie application, mais comment tester l'application. Laissez-moi essayer encore: Disons, par exemple, que je déclenche startUpdatingLocation sur applicationDidFinishLaunching: et définissez appDelegate en tant que délégué de CLLocationManager. La question est de savoir comment configurer la suite de tests afin de tester si le délégué CLLocationManager reçoit locationManager: didUpdateLocation: fromLocation: Autant que j'ai pu, le test se termine juste avant que les appels de délégués ne soient déclenchés. Anythow, merci – ariel
pourquoi cela a-t-il été accepté? –
Bonne chance avec celui-ci. Je n'arrivais pas à faire fonctionner ça ... :-) –
C'est aussi ce que je recherche avec mes tests unitaires. Il semble que les tests d'application soient démarrés avant l'appel de applicationDidFinishLaunching. –
J'essaie de faire quelque chose de similaire, et en espérant me moquer de l'emplacement. –