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 文件。