繁体   English   中英

为什么在Objective-C / Swift中很难进行异步网络测试?

[英]Why is asynchronous network testing difficult in Objective-C/Swift?

因此,当我遇到以下情况时,我将学习更多有关如何测试异步代码的信息:

给定的测试方法完成后,XCTest方法将认为测试已完成并移至下一个测试。 这意味着来自上一个测试的任何异步代码将在下一个测试运行时继续运行。 网络代码通常是异步的,因为您不想在执行网络获取时阻塞主线程。 加上测试方法完成后测试完成的事实,可能会使测试网络代码变得困难。”

但是,这在我看来是矛盾的。 如果我理解正确,他首先说XCTest方法将继续运行,即使异步代码正在完成。 但是,他然后说测试方法完成后测试就完成了。 但是这两个语句是矛盾的,因为由于异步代码仍在运行,所以测试尚未完成,但是它在串行队列中继续执行下一个进程。 换句话说,测试是在异步代码完成时完成还是在异步代码仍在运行时继续测试? 最重要的是,是什么使网络测试如此困难? 谢谢。

分解该语句可以告诉我们,每个测试方法在返回时都会完成。 因为您正在使用异步回调测试网络代码,所以该方法结束前可能不会发生回调。 因此,测试异步代码可能被认为可能很困难**如果您不注意**

为此,我将添加一个简单的调度组来包装代码并等待代码完成。 这是我启发自己测试自己的代码的一个很好的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM