为什么Objective-C / Swift中的asynchronousnetworkingtesting困难?

所以,当我遇到以下情况时,我正在学习更多关于如何testingasynchronous代码的知识:

只要给定的testing方法完成,XCTest方法将考虑完成一个testing,并转到下一个testing。 这意味着在下一次testing运行时,来自以前testing的任何asynchronous代码将继续运行。 networking代码通常是asynchronous的,因为您不想在执行networking提取时阻止主线程。 再加上当testing方法结束时testing完成的事实,可能使testingnetworking代码变得困难。“

不过,这在我看来是矛盾的。 如果我的理解正确,他说,即使asynchronous代码完成,XCTest方法也会继续运行。 然而,他接着说testing方法完成后testing就完成了。 但是这两个语句是矛盾的,由于asynchronous代码仍在运行,testing没有完成,而是在串行队列中继续执行下一个进程。 换句话说,当asynchronous代码完成时testing是否完成,还是在asynchronous代码仍在运行时继续testing? 最重要的是,networkingtesting如此困难? 谢谢。

打破这个声明告诉我们,每个testing方法返回时结束。 由于您正在使用asynchronouscallbacktestingnetworking代码,因此在方法结束之前可能不会发生callback。 因此,testingasynchronous代码可能被认为是潜在的困难**如果你不注意**

为此,我将添加我正在使用简单的调度组来包装代码并等待代码完成。 这是一个很好的例子,我激励自己testing自己的代码 。