swift - 我如何对协议及其扩展进行单元测试
问题描述
我有一个协议,我在扩展中有它的定义。
我想对定义进行单元测试。
我用谷歌搜索,但我找不到任何相关的东西。
我得到的最接近的是 Mocking with Protocol 或 POP 等。
如果有人可以用样本解释我,那就太好了。
解决方案
不需要对协议本身进行单元测试,您应该测试符合的类型。如果你有一个协议扩展,你想测试一些默认行为,那么在你的测试目标中创建一些符合协议的基本结构或类,并在你的测试中使用它。
这是一个示例,给定以下协议,其中包含一个函数和该函数的默认实现
protocol Example {
func calculate(_ x: Int) -> Int
}
extension Example {
func calculate(_ x: Int) -> Int {
x * 2
}
}
您可以在测试目标中添加一个简单的结构来测试它,因为我们要测试默认实现,所以结构变得非常简单
struct TestExample: Example {}
然后对此的单元测试可能看起来像
func testDefaultCalculation() {
let sut = TestExample()
XCTAssertEqual(2, sut.calculate(1))
}
推荐阅读
- javascript - fetch 后在页面上查找元素 | JS
- curl - 重定向 curl 输出以在 chrome 中打开 HTML 响应?
- r - 在 R 包中使用 -fPIC 重新编译
- php - Laravel 文件验证 - 如何修复“变量被立即覆盖”
- python - Python 退出 MacOS Big Sur
- c - C中的结构继承。类型转换后访问父结构中的成员
- javascript - React 无法解析我目录中的模块
- azure - 如何在 AD B2C 中更改用户密码后验证用户 ID 令牌
- c# - ManagedThreadId 如何对应 C# 中的 Thread 和 CPU 上的 Thread?
- css - 40px 的浏览器字体大小正在触发移动布局。这是一个错误吗?