2009-10-20 4 views
6

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

+1

Bonne chance avec celui-ci. Je n'arrivais pas à faire fonctionner ça ... :-) –

+1

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

+0

J'essaie de faire quelque chose de similaire, et en espérant me moquer de l'emplacement. –

Répondre

1

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.

+0

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

+2

pourquoi cela a-t-il été accepté? –