在测试目标中包含资产目录

时间:2016-12-20 05:08:24

标签: xcode xctest asset-catalog

在我的一个XCTests课程中,我需要从资产目录中加载图像以测试图像处理逻辑。但是,似乎在测试目标中使用UIImage(named: "imageName")返回nil

我检查了资产目录中的测试目标成员资格,我还应该做些什么来启用XCTest类中的图像读取?

2 个答案:

答案 0 :(得分:5)

@mylovemhz的答案是正确但不完整的。您需要引用该包:

斯威夫特3:

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

同时确保您的资产与测试类包含在同一目标中。

答案 1 :(得分:2)

根据文档,您必须在运行时添加它们。

  

如果您的测试使用资产 - 数据文件,图像等 - 它们可以   添加到测试包中并使用NSBundle在运行时访问   蜜蜂。在测试类中使用+[NSBundle bundleForClass:]可确保   您获取正确的包以检索资产。更多   信息,请参阅NSBundle Class Reference

在Swift中,它将是:

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