为iOS应用程序模拟服务器响应(JSON)的最佳做法是什么?
情况是一个开发人员(不是我)正在制作后端,我想创建一个"模拟服务器"所以我可以开始使用伪数据进行用户测试,也可以进行单元测试。
是否有任何框架可以拦截' nsurlconnection所以我可以注入自己的json响应,如果我没有'实际上想要联系服务器?目前,我正在切换所有服务器请求方法中的一个标志,以及它的丑陋。
答案 0 :(得分:2)
对于服务器通信,我使用自己的“服务请求”类抽象出NSURLConnection
。这将我的代码与服务器特定的逻辑和错误处理分离,但也很好,因为模拟响应数据证明非常容易。您可以设置通过配置使用模拟数据,或者@wkhatch提到,有条件地编译它。
答案 1 :(得分:2)
检查Nocillap,这是iOS / OSX开发最酷的模拟库之一:
stubRequest(@"POST", @"https://api.example.com/dogs.json").
andReturn(201).
withHeaders(@{@"Content-Type": @"application/json"});
与AFNetworking一起使用,这些日子是巨大的。
答案 2 :(得分:0)
您可以定义协议,让您的依赖类使用协议作为类型,然后创建一些实现它的不同类;一个用于实时,一个用于测试等等。然后,在您的从属控制器内或您需要切换的任何地方,只需使用目标或配置预处理来切换出哪个被使用。以这种方式使用协议时,您希望将其定义为:
id<ProtocolName> myServerURLConnectionThing;
这当然不是做你想做的事情的唯一方法,但基本上,所有这些都将归结为你需要这样或那样的界面。 HTH