Thursday, 2 March 2017

Waitforexpectationswithtimeout Swift

J'ai eu peu de succès en pratiquant le développement piloté par test avec le code asynchrone de Swift 2.0 dans Xcode 7. Les seules solutions avec lesquelles j'ai eu n'importe quel succès sont artificiel et les mécanismes de retard de hacky qui évitent le besoin pour waitForExepectationsWithTimeout (). Je voudrais effectuer des tests asynchrones comme suit, mais ce code échoue régulièrement: Thread 1: EXCBADACCESS (code1, address0x6.) Lorsque l'attente est remplie (expectation. fulfill ()) en dehors de la fermeture exécutée de façon asynchrone, ce test passera comme Attendu (tant que je commenter l'accomplissement à l'intérieur de la fermeture). Mais cela évite évidemment le but de la synchronisation de l'évaluation des tests. Je remarquerai que même si le test échoue, le message Executed s'imprime comme on pourrait s'y attendre. En outre, si un point d'arrêt est introduit sur le waitForExpectationsWithTimeout. , Le test réussit de même, le test réussit lorsqu'un retard de sommeil artificiel est introduit. Cela me conduit à croire que waitForExepectaionsWithTimeout () n'attend pas du tout. Certes, je suis nouveau sur Xcode et Swift, donc si je manque quelque chose d'évident, j'apprécierais beaucoup toute rétroaction. Quel est le problème avec mon code ci dessus Existe t il des variables environnementales que je peux fournir pour aider à déboguer le problème Exécuter: OS X El Capitan 10.11 bêta (15A263e), Xcode 7.0 bêta (7A120f) a demandé 21 août à 20h06 Asynchrone utilisant XCTestExpectation. Le code suivant fonctionne (le test réussit) lorsque le completionHandler est exécuté avant le délai donné de 1 seconde. Cependant, si le completionHandler n'est pas appelé, et donc l'attente n'est pas remplie, au lieu d'obtenir un échec de test lors de l'appel waitForExpectationsWithTimeout je reçois un EXCBADACCESS, ce qui n'est pas très pratique car cela rend impossible de voir les résultats de la suite de test ensemble. Comment puis je éviter cela et obtenir un test normal échec demandé 21 décembre à 15h31


No comments:

Post a Comment