Ich kann keine XCTestCase-Komponententests für eine statische Cocoa Touch-Bibliothek abrufen, die auf Code basieren, der imageNamed
verwendet, um zu funktionieren.Verwenden von UIImage imageNamed in XCTestCase
Ich habe mein Bild "plane.png" zum Testziel hinzugefügt, aber [UIImage imageNamed]
wird immer wieder Null.
Wenn ich explizit den Pfad des Bildes im Test angeben und das Bild aus der Datei laden, funktioniert es.
NSString* imagePath = [[[NSBundle bundleForClass:[self class]] resourcePath] stringByAppendingPathComponent:@"plane.png"];
UIImage* imageWorks = [UIImage imageWithContentsOfFile:imagePath];
UIImage* imageStaysNil = [UIImage imageNamed:@"plane.png"];
Wie kann ich Unit-Tests für Code schreiben, imageNamed
verwendet?
Diese neue Funktion verwendet den System-Image-Cache, im Gegensatz zu imageWithContentsOfFile, so dass es in iOS8 + möglich ist zu testen. Alle 'imageNamed' Calls zu ändern, um den Code in der Unit testen zu können, ist jedoch nicht ideal, aber es reicht. – Pieter