2016-12-20 4 views
4

私のXCTestsクラスのうちの1つでは、アセットカタログからイメージをロードして、イメージ処理ロジックをテストする必要があります。しかし、UIImage(named: "imageName")を使って、nilをテストターゲットに返すようです。テストターゲットに資産カタログを含める

資産カタログのテスト対象メンバーを確認しましたが、XCTestクラスから画像を読み取るために必要なことはありますか?

答えて

0

ドキュメントによると、実行時に追加する必要があります。

あなたのテストは、資産データファイル、画像、および等々、彼らは がテストバンドルに追加し、NSBundle APIを使用して実行時にアクセスすることができますを使用している場合。テストクラスに+[NSBundle bundleForClass:]を使用すると、正しいバンドルを取得してアセットを取得することが保証されます。 の詳細については、NSBundle Class Referenceを参照してください。スウィフトは

、それはの線に沿って何かのようになります。@mylovemhzによって答えは正しいが、不完全である

let appBundle = Bundle(for: type(of: MyClass) as! AnyClass) 
1

。また、あなたの資産があなたのテストクラスと同じターゲットに含まれていることを確認

UIImage(named: "imageName", in: Bundle(for: MyTestClass.self), compatibleWith: nil) 

スウィフト3:あなたは、バンドルを参照する必要があります。