测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可协议 | MIT |
发布上次发布 | 2017 年 4 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 kviksilver 维护。
Smock 通过提供记录选择器调用、参数和存根返回值的功能,使在 Swift 中测试协议扩展变得更容易
在 Tests 对象中查找 ProtocolUnderTest
、ProtocolUnderTestMock
和 TestingProtocolExtensions
,以获取更多详细信息。
基本示例
协议定义以下接口
protocol ProtocolUnderTest: class {
func functionToTest()
func functionToImplement()
}
扩展实现了 functionToTest
,它调用 functionToImplement
extension ProtocolUnderTest {
func functionToTest() {
functionToImplement()
}
}
为了测试扩展是否确实完成了所需的工作(在我们的案例中是函数调用),我们在测试目标中创建了一个符合 ProtocolUnderTest
和 Mock
协议的存根,如下所示实现了所需 的 functionToImplement
class ProtocolUnderTestMock: NSObject, ProtocolUnderTest, Mock {}
extension ProtocolUnderTestMock {
func functionToImplement() {
registerSelector(#selector(functionToImplement))
}
}
Swift 包管理器
要使用 Swift 包管理器,请尝试将以下内容添加到您的 Package.swift 文件中
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.Package(url: "https://github.com/kviksilver/Smock.git", majorVersion: 0),
]
)
kviksilver, [email protected]
Smock 根据 MIT 许可协议提供。有关更多信息,请查看 LICENSE 文件。