Tag: 网络层

Swift中的模拟网络层—第3部分

通过模拟URLProtocol 请检查有关网络层第1部分和第2部分的先前文章。 什么是模拟? 在面向对象的编程中,模拟对象是模拟对象,它们以受控方式模拟实际对象的行为。 ( 维基 ) 在我们的例子中,我们必须模仿URLSession,以便它可以返回模拟对象而不会触及物理服务器。 我们可以通过创建对URLProtocol进行确认的MockURLProtocol并实现其所需的方法来实现此目的 。 现在,我们的MockURLProtocol能够处理指定的请求。 现在,我们必须将MockURLProtocol添加到 URLSessionConfiguration.protocolClasses数组以处理会话中的请求。 模拟行动: 例如,要模拟loginUser函数,我们必须准备一个假的响应对象 ,该对象在真实的服务器调用中是我们期望的。 该响应对象将作为MockURLProtocol的 requestHandler的响应返回。 最终的模拟登录用户函数如下所示。 请检查示例代码中的APIMockingTests.swift文件。