我为 UIImage
类编写了一些扩展,并希望通过单元测试覆盖它。我向测试目标添加了一些图像,并检查它是否出现在 Copy Bundle Resources
列表中。
在测试代码中,我使用了一个为我提供测试数据的模型对象。
class TestConstants {
private static var bundle: Bundle {
return Bundle(for: UIImageExtensionsTests.self)
}
private static var birdImageURL: URL {
let path = self.bundle.url(forResource: "birds", withExtension: "png")
return path!
}
static var birdImageData: Data {
return try! Data(contentsOf: self.birdImageURL)
}
}
不幸的是,birds.png
图像不在测试包中,但存在另一个资源 drm.txt
。
我有点困惑这是 Xcode 中的错误吗?
顺便说一下,我下载了 Xcode 9.4 beta 并且有相同的行为 - 图像不会复制到测试包中。
#更新:
UIImageExtensionsTests
是一个测试类,与 drm.txt
和 birds.png
文件在同一目标中呈现
最佳答案
要获得适当的 Bundle,请使用:
let bundle = Bundle.init(for: TestConstants.classForCoder())
关于swift - 代码。添加到测试目标的图像资源不会复制到测试包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49794276/