我想知道是否存在用于 swift 单元测试的架构模式,例如 MVP、MVVM。
我了解 AAA 模式,但它破坏了测试方法内部的逻辑。在我读过的所有内容中,测试的结构与项目本身的结构相同,并且没有这样的架构。
也许您知道一些架构、模式或方法有助于将模块化测试逻辑地分解为不同的对象?
XCTest 属于 xUnit 测试框架系列。它遵循 xUnit 架构,支持分组到测试套件中的独立测试用例。
对于 Swift 开发人员来说,最重要的是学习如何正确地拆解事物,以便测试用例保持彼此隔离。请参阅https://qualitycoding.org/xctestcase-teardown/
有关一般 xUnit 设计模式,请参阅 http://xunitpatterns.com
对于架构模式,Jon Reid 的回答是正确的。但一段时间后,我发现了一种可以帮助您编写“干净”单元测试的模式。它是一个构建器模式。您可以将逻辑分开:
通过这种方式,我们将配置 SUT 的大量逻辑移至单独的对象中,并使测试更具可读性。
示例:
sut = builder
.with(id: myId)
.with(condition: myConfition)
.makeFailureOnRequest(error: myError)