gpt4 book ai didi

mocking - 在 XCTest 中快速模拟对象的最佳方法是什么?

转载 作者:IT王子 更新时间:2023-10-29 05:28:03 26 4
gpt4 key购买 nike

在 XCTest 中快速模拟对象的最佳方法是什么?它只是在具有所需功能的函数中定义类吗?或者有更好的选择吗?

最佳答案

我推荐使用 Cuckoo ,类似于 Mockito。

示例类:

class ExampleObject {

var number: Int = 0

func evaluate(number: Int) -> Bool {
return self.number == number
}

}

class ExampleChecker {

func check(object: ExampleObject) -> Bool {
return object.evaluate(5)
}

}

示例测试:

@testable import App
import Cuckoo
import XCTest

class ExampleCheckerTests: XCTestCase {

func testCheck() {
// 1. Arrange
let object = MockExampleObject().spy(on: ExampleObject())
stub(object) { object in
when(object.evaluate(any())).thenDoNothing()
}
let checker = ExampleChecker()

// 2. Action
checker.check(object)

// 3. Assert
_ = verify(object).number.get
verify(object).evaluate(any())
verifyNoMoreInteractions(object)
}

}

请注意MockExampleObject 类是使用自定义运行脚本(在构建阶段)自动生成的, Cuckoo 文档提到(在他们的安装部分)。

关于mocking - 在 XCTest 中快速模拟对象的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24522691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com