MockingKit Logo

Version Swift 6.0 MIT License Twitter: @danielsaidi Mastodon: @danielsaidi@mastodon.social

关于 MockingKit

MockingKit 是一个 Swift SDK,可让您轻松模拟协议和类。

使用 MockingKit,您可以创建任何协议或类的模拟,然后您可以 调用 函数,注册 动态函数结果,自动 记录 方法调用,以及 检查 所有已记录的调用。

MockingKit 不需要任何设置或构建脚本,并且对您的代码或架构没有任何限制。只需创建一个模拟,就可以开始使用。

安装

可以使用 Swift Package Manager 安装 MockingKit

https://github.com/danielsaidi/MockingKit.git

开始使用

MockingKit 允许您创建任何协议或开放类的模拟。

例如,考虑以下简单协议

protocol MyProtocol {

    func doStuff(int: Int, string: String) -> String
}

使用 MockingKit,您可以轻松创建此协议的模拟实现

import MockingKit

class MyMock: Mock, MyProtocol {

    // Define a lazy reference for each function you want to mock
    lazy var doStuffRef = MockReference(doStuff)

    // Functions must then call the reference to be recorded
    func doStuff(int: Int, string: String) -> String {
        call(doStuffRef, args: (int, string))
    }
}

现在,您可以使用该模拟来 注册 函数结果、调用 函数以及 检查 记录的调用。

// Create a mock instance
let mock = MyMock()

// Register a result to be returned by doStuff
mock.registerResult(for: mock.doStuffRef) { args in String(args.1.reversed()) }

// Calling doStuff will now return the pre-registered result
let result = mock.doStuff(int: 42, string: "string") // => "gnirts"

// You can now inspect calls made to doStuff
let calls = mock.calls(to: \.doStuffRef)             // => 1 item
calls[0].arguments                                   // => (42, "string")
calls[0].result                                      // => "gnirts"
mock.hasCalled(\.doStuffRef)                         // => true

请参阅在线 入门指南 以获取更多信息。

文档

在线 文档 包含更多信息、文章、代码示例等。

演示应用程序

Demo 文件夹包含一个应用程序,可让您探索该库并了解模拟的行为方式。

支持我的工作

您可以在 GitHub Sponsors 上 赞助我,或者 联系我 以获得付费支持,以帮助支持我的 开源项目

您的支持使我能够投入更多精力到这些项目中,并使其达到最佳状态。

联系方式

如果您有任何问题或想以任何方式做出贡献,请随时与我联系

许可证

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