SDWebImageMockPlugin 使得在使用 SDWebImage 配置图像的视图中进行快照测试成为可能。
要运行示例项目,请克隆该 repo,然后首先从 Example 目录运行 pod install
。
此模块提供了一个 ImageCacheMocker
,允许您模拟 SDWebImage 请求的所有图像。 要启用其模拟功能,请调用其方法 setupSDWebImageMocking()
,之后来自 SDWebImage 的所有请求都将使用此缓存实例。
class Tests: XCTestCase {
var imageMocker = ImageCacheMocker()
override func setUp() {
super.setUp()
imageMocker.setupSDWebImageMocking()
}
// Your snapshot tests here
}
一旦 mocker 就位,由 SDWebImage 配置的图像将取决于 url 格式。 以下是默认行为的列表
size://1920x1080
将提供宽度为 1920pt,高度为 1080pt 的图像ratio://3:2
将提供比例为 3/2
且恒定高度为 500pt 的图像bundle://main/mySampleImage
将从 Bundle.main
提供名为 mySampleImage
的图像(默认情况下 main
是 ImageCacheMocker 中配置的唯一标识符)任何其他 url 都将返回默认图像。
提供了 URL
的扩展来构造这些默认 url
URL.imageMock(forWidth: 500, height: 100) // -> size://500x100
URL.imageMock(withRatio: Double(16) / Double(9)) // -> ratio://1.7777777777777777:1 (equivalent to ratio://16:9)
URL.imageMock(named: "sampleImage1", inBundleID: "testBundle") // -> bundle://testBundle/sampleImage1
可以通过使用 ImageCacheMocker.registerProvider(:)
注册自定义图像提供程序来自定义这些行为。
您可以在此处找到示例测试: Tests.swift,以及这些测试的快照
testViewController.1.png | testMultipleImagesViewController.1.png | testConfiguredMultipleImagesViewController.1.png |
![]() |
![]() |
![]() |
SDWebImageMockPlugin
可通过 CocoaPods 获得。 要安装它,只需将以下行添加到您的 Podfile
pod 'SDWebImageMockPlugin'
SDWebImageMockPlugin
可以作为 Swift Package 使用 Xcode 11 或更高版本安装。 要安装它,请使用 Xcode 添加一个包或将依赖项添加到您的 Package.swift 文件
.package(url: "https://github.com/faberNovel/SDWebImageMockPlugin")
SDWebImageMockPlugin 由 Fabernovel 拥有和维护。 您可以在 Twitter 上关注我们 @Fabernovel。
SDWebImageMockPlugin
在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。