SDWebImageMockPlugin

Version License Platform CI

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 格式。 以下是默认行为的列表

任何其他 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

安装

Cocoapods

SDWebImageMockPlugin 可通过 CocoaPods 获得。 要安装它,只需将以下行添加到您的 Podfile

pod 'SDWebImageMockPlugin'

Swift Package Manager

SDWebImageMockPlugin 可以作为 Swift Package 使用 Xcode 11 或更高版本安装。 要安装它,请使用 Xcode 添加一个包或将依赖项添加到您的 Package.swift 文件

.package(url: "https://github.com/faberNovel/SDWebImageMockPlugin")

鸣谢

SDWebImageMockPlugin 由 Fabernovel 拥有和维护。 您可以在 Twitter 上关注我们 @Fabernovel

许可证

SDWebImageMockPlugin 在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。