Possiedo un'applicazione che utilizza i dati principali. Il comportamento dell'applicazione è diverso a seconda che i dati siano già stati compilati.Come iniziare con Core Data vuoti per ogni asserzione di test dell'interfaccia utente in Swift?
Avevo sperato che, prima di ogni caso di test, i dati di base sarebbero stati svuotati, rendendo ogni test case eseguito su una nuova istanza di app. I casi di test non dovrebbero dipendere dallo stato di alcuni dispositivi di test, specialmente perché altri casi di test manipolano questo stato. Sfortunatamente, per impostazione predefinita, i dati principali non si fermano solo tra i casi di test, ma anche tra esecuzioni di test completamente separate. Sto cercando di risolvere questo comportamento.
La mia prima idea era di scaricare tutti i dati principali nella funzione di rimozione. In questo modo ogni test si ripulirebbe da solo. Purtroppo, non sono in grado di ottenere un NSManagedObjectContext con questo comando:
let context = (UIApplication.sharedApplication().delegate as! MyApp.AppDelegate).managedObjectContext!
Perché ha questo errore di compilazione:
Undefined symbols for architecture x86_64: "type metadata accessor for MyApp.AppDelegate", referenced from: MyAppUITests.MyAppUITests.tearDown
Per correggere questo errore ho provato sia aggiungendo le UITests ai membri di destinazione AppDelegate e facendo un @testable import MyApp
. Nessuno dei due ha funzionato. Ho bisogno di managedObjectContext per svuotare i dati principali.
Ora penso che ci sia un modo migliore, integrato, per scaricare tutti i dati principali all'inizio o alla fine di ogni caso di test eseguito. Sarebbe preferibilmente alla fine, poiché ogni test dovrebbe ripulire se stesso. Qualcuno sa come questo potrebbe essere fatto?
Grazie in anticipo!