Bonjour Ă tous!
Autre nouveauté dans la liste de nos cours:
«iOS Developer» , ce qui signifie que le temps est venu pour des piÚces intéressantes que nous avons trouvées lors de la préparation du cours. Dans cet article, l'auteur analyse comment enregistrer et lire les demandes d'API pour les tests d'interface utilisateur.

Allons-y.
J'ai récemment intégré
Embassy et
Succulent dans mes tests d'interface utilisateur. Si vous devez exécuter des tests d'interface utilisateur pour une application qui utilise ces API, ce guide peut offrir une alternative à mock / stub.
Les problĂšmes:
- L'application utilise les données API pour remplir l'interface utilisateur;
- L'utilisation de stubs peut nécessiter l'écriture et la maintenance d'un grand nombre de fichiers;
- Lorsque vous utilisez des simulations, la logique d'application peut différer de l'appel réseau réel;
- Utilisation de cette API de connexion - EXACTEMENT EXCLUE, trop de variables et de plantages
Ambassade + Solution succulenteLa solution consiste à créer un serveur local vers lequel votre application est dirigée (en utilisant Embassy) et à enregistrer / répondre aux appels réseau (en utilisant Succulent).
La premiÚre fois que vous exécutez le test, des appels réseau standard seront effectués et écrits dans le fichier de trace.
La prochaine fois, ces mĂȘmes appels rĂ©seau recevront une rĂ©ponse automatique. Cool, non? Pas besoin d'Ă©crire des simulations, vous pouvez simuler des dĂ©calages et des erreurs, et tout cela s'exĂ©cute Ă l'intĂ©rieur de la machine de construction, Ă l'intĂ©rieur de XCtest!
Comment l'utiliser?1. Téléchargez et installez sous Succulent. Au moment d'écrire ces lignes, il n'y avait pas de pod sur cocoapods.com, vous devez donc télécharger la source et l'ajouter à votre sous-fichier comme suit:
target âUI Testsâ do inherit! :search_paths pod 'Succulent', :path => 'Succulent/' end
Embassy est requis par Embassy et il sera installé automatiquement.
2. Créez un nouveau fichier d'interface utilisateur de test et copiez les instructions de
Succulent GitHub . Par conséquent, vous devriez obtenir ce fichier:
import Succulent @testable import TestAppUITests class SucculentTestUITest: XCTestCase { private var succulent: Succulent! var session: URLSession! var baseURL: URL! /// The name of the trace file for the current test private var traceName: String { return self.description.trimmingCharacters(in: CharacterSet(charactersIn: "-[] ")).replacingOccurrences(of: " ", with: "_") } /// The URL to the trace file for the current test when running tests private var traceUrl: URL? { let bundle = Bundle(for: type(of: self)) return bundle.url(forResource: self.traceName, withExtension: "trace", subdirectory: "Traces") } /// The URL to the trace file for the current test when recording private var recordUrl: URL { let bundle = Bundle(for: type(of: self)) let recordPath = bundle.infoDictionary!["TraceRecordPath"] as! String return URL(fileURLWithPath: "\(recordPath)/\(self.traceName).trace") } override func setUp() { super.setUp() continueAfterFailure = false if let traceUrl = self.traceUrl { // Replay using an existing trace file succulent = Succulent(traceUrl: traceUrl) } else { // Record to a new trace file succulent = Succulent(recordUrl: self.recordUrl, baseUrl: URL(string: "https//base-url-to-record.com/")!) } succulent.start() let app = XCUIApplication() app.launchEnvironment["succulentBaseURL"] = "http://localhost:\(succulent.actualPort)/" app.launch() } override func tearDown() { super.tearDown() } }
Lorsque vous démarrez Succulent, vous pouvez spécifier l'URL de base, grùce à laquelle toutes les demandes, y compris l'URL de base, seront enregistrées et toutes les autres seront ignorées.
3. Ajoutez la ligne suivante Ă la cible Info.plist de votre interface utilisateur de test:
<key>TraceRecordPath</key> <string>$(PROJECT_DIR)/Succulent/Traces</string>
4. Dirigez l'application vers le serveur local.
Pour ce faire dans votre application principale, vous devez vérifier si la variable d'environnement «succulentBaseURL» existe et si elle est configurée.
Il affiche l'url de votre serveur Web local et est configuré dans la fonction setUp, qui a été copiée ci-dessus à l'étape 2.
C'est tout, peut-ĂȘtre!
Maintenant, lorsque vous effectuez un test simple et l'exĂ©cutez, Succulent Ă©crit la demande d'API et crĂ©e un fichier .trace dans le dossier Traces du rĂ©pertoire cible de votre test d'interface utilisateur. La prochaine fois que vous exĂ©cuterez le mĂȘme test, il vĂ©rifiera si le fichier existe et l'exĂ©cutera.
Vous pouvez ouvrir des fichiers .trace directement Ă partir de Xcode, regarder toutes les requĂȘtes rĂ©seau et les modifier si nĂ©cessaire.
J'espÚre que l'article s'est avéré utile, voici la pizza:

LA FIN
Comme d'habitude, nous attendons des commentaires, des questions, etc. ici ou vous pouvez regarder
Open Day et poser une question Ă l'
enseignant lĂ -bas.