1
4
您需要使用
通过调用
苹果的 "Testing Asynchronous Operations with Expectations" 文件编号:。 |
2
2
看起来您正在尝试编写针对FreeApiService的测试。然而,从名称(和完成处理程序)来看,FreeApiService会进行网络调用。这是在单元测试中要避免的,因为测试不再仅仅依赖于您的代码。这取决于
如果您愿意忍受脆弱(由于上面的依赖关系)和缓慢(由于网络延迟)的测试,那么您可以编写异步测试。它看起来像这样:
如果未调用完成处理程序,
我避免将断言放在完成处理程序中。相反,正如我在 A Design Pattern for Tests that Do Real Networking ,我建议:
然后可以在完成处理程序之外执行所有断言。 但是我尝试为后端系统本身的验收测试保留异步测试。如果您想测试自己的代码,异步测试的混乱性质表明,被测代码的设计需要改进。网络通话形成了明确的界限。我们可以测试到那个边界。我们可以测试任何被扔到我们身上的东西,但在我们这一边。换句话说,我们可以测试:
修改代码以允许这些测试将使我们能够编写快速且确定的测试。他们甚至不需要互联网连接。 |
Mark George · 如何在swift ui中为文本提供内部填充 1 年前 |
Safa Ads · CDN:无法下载中继URL:https://cdn.jsdelivr.net/cocoa/Specs/2/e/c/RxSwift/3.0.0-rc.1/RxSwift.podspec.json响应:SSL连接错误 1 年前 |
fun lab · 与Apple Music API集成的未授权请求 1 年前 |
marc-medley · swift shebang脚本的导入路径 1 年前 |
Lorenzo B · 解码单个值时对JSONDecoder的说明 2 年前 |