2016-12-15 11 views
2

でnilを返します。私は私のUITestsターゲットにAssets.xcassetsを追加しましたが、UIImageが、私は.xcassetsからイメージを持つ要素の画像を比較したい私のUITestsで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) 

referenceImageは(、常にnilでありますUITest target-> Build phases/Copy bundle resources)をダブルチェックしてください。

ここで間違いがありますか?

+0

ここで問題なく動作します。申し訳ありません:-) – shallowThought

答えて

2

UIImageはメインバンドルを使用して画像を検索します。 テストバンドルは異なるバンドルです。 あなたはUIImageの

明示的にテストバンドルを指定することができます
init(named:in:compatibleWith:) 

を使用する必要があります。

バンドルのinitForClassでテスト対象のバンドルを取得し、現在のテストクラスに渡すことができます。

+0

let bundle = NSBundle(forClass:object_getClass(s​​elf)) letImage = UIImage( "referenceImage"、inBundle:bundle、compatibleWithTraitCollection:なし) ありがとう! – izik461

関連する問題