Moyen le plus simple d'utiliser des ressources pour les tests
-
21-12-2019 - |
Question
Son pratique d'utiliser des ressources de forfaits pour les tests, par exemple pour fournir le résultat attendu pour un test.
Pour les anciens tests de style logique, j'utiliserais le paquet principal pour cela. Toutefois, pour les tests de style d'application, le forfait principal est l'application elle-même.Je ne veux pas mettre des ressources de test dans le paquet principal.
Par exemple, le code suivant ne fonctionne pas si la ressource de test n'appartient à la cible de test:
//Load a resource from the main bundle
NSString* xml = [[TyphoonBundleResource withName:@"signUpResponse.xml"] asString];
...Y a-t-il un ensemble spécifique pour les tests?Comment puis-je obtenir une poignée à cela?
La solution
Utilisez simplement:
NSBundle *testBundle = [NSBundle bundleForClass:[YourTestClass class]];
ou à Swift 3:
let testBundle = Bundle(for: type(of: self))
dans le code des tests.Tout ce que vous ajoutez dans 'Copy Bundle Resources' dans 'Build Phases' pour votre cible de tests dans XCode sera disponible dans ce paquet.