2016-12-15 6 views
2

in meinem UITests I Bild des Elements von .xcassets mit dem Bild vergleichen will:UIImage gibt nil zurück in UITests

let referenceImage = UIImage(named: "referenceImage") 
guard referenceImage != nil else { 
    print("didn't find referenceImage image in assets") 
    XCTAssert(false) 
    return 
    } 
let cellImage = myCell.images.elementBoundByIndex(0) 
let imagesEqual = (referenceImage!.isEqual(cellImage)) 
XCTAssert(imagesEqual) 

Die referenceImage ist immer Null, obwohl ich Assets.xcassets mein UITests Ziel hinzugefügt habe (in UITest target -> Build phases/Kopieren von Bundle-Ressourcen doppelt eingecheckt.

Was kann hier falsch sein?

+0

Funktioniert hier gut. Sorry :-) – shallowThought

Antwort

2

UIImage verwendet das Hauptbündel, um nach dem Bild zu suchen. Das Testpaket ist ein anderes Paket. Sie sollten die Verwendung UIImage

init(named:in:compatibleWith:) 

, wo Sie Ihre Testbündel explizit angeben.

Sie können das Bundle für das Testziel mit initForClass des Bundles erhalten und Ihre aktuelle Testklasse weitergeben.

+0

Geändert in so etwas: lassen Sie bündeln = NSBundle (forClass: object_getClass (self)) lassen Sie referenceImage = UIImage (mit dem Namen: "referenceImage", inBündle: Bundle, compatibleWithTraitCollection: nil) Vielen Dank! – izik461

Verwandte Themen