有没有办法强制 Alamofire 在主线程上完成所有工作?这是一个测试场景,我需要主线程在网络调用完成并且我知道状态之前不继续执行。有问题的测试曾经在XCTest
框架下运行,所以我会XCTestExpectation
等待完成。我使用的环境不适用XCTest
,所以我需要 Alamofire 是同步的。
由于前 2 条评论都建议了我应该如何测试,让我提供更多的上下文。
在过去的 2 年里,我有大约 100 个测试运行良好。这些测试不是单元测试,而是使用 Google 的 EarlGrey 1 进行的 UI 测试。EarlGrey 1 提供了在 XCTest 下运行的 UI 测试,因此您可以将 UI 测试与应用程序状态的白盒检查结合起来。这很棒。
Earl Gray 1 不支持 iOS 13,因此我将测试移植到 EarlGrey 2,它在 XCUITest 之上运行。对于白盒方面,您可以从测试过程远程调用注入到您的应用程序中的包。
在这种情况下,“模拟”是服务器,但它确实会进行网络调用,并且当我调用测试包时会发生这些情况。我需要知道他们什么时候完成,这样我才能在他们完成后返回。