在我的一个XCTests
课程中,我需要从资产目录中加载图像以测试图像处理逻辑。但是,似乎在测试目标中使用UIImage(named: "imageName")
返回nil
。
我检查了资产目录中的测试目标成员资格,我还应该做些什么来启用XCTest
类中的图像读取?
答案 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)