HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了建议使用NSOperations和Coredata在iOS应用程序中测试API请求层大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我开发了一个使用REST API的iOS应用程序. iOS应用程序在工作线程中请求数据,并将解析结果存储在核心数据中.所有视图都使用核心数据来显示信息. REST API快速变化,我没有真正的控制界面.

我正在寻找如何为应用程序进行集成测试尽可能简单的建议.我应该测试API还是针对mock数据?但是如果您可以使用POST创建资源或使用PUT修改资源,那么如何正确地模拟GET请求?

您为这些问题使用了哪些框架?我玩了Frank,看起来不错,但由于UI应用程序中的UI快速更改而复杂.您应该如何测试应用中的“API请求图层”?工作线程是队列中的NSOperations – 一切都是异步构建的.任何建议?

解决方法

我强烈建议你嘲笑服务器.服务器下降,行为发生变化,如果测试失败意味着“也许我的代码仍然可行”,您的手上有问题,因为您的测试并不告诉您代码是否损坏点.

至于如何模拟服务器,进行单元测试:

first_results = list_things()
delete_first_thing()
results_after_delete = list_thing()@H_772_13@ 
 

我有一个模拟数据结构,如下所示:

{ list_things_request : [first_results,results_after_delete],delete_thing_request: [delete_thing_response] }@H_772_13@ 
 

它是您的请求的关键,该值是针对该请求的一系列响应,按照它们被看到的顺序.因此,您可以支持重复运行相同的请求(如列出的东西)并获得不同的结果.我使用这种格式,因为在我的情况下,我的API调用有可能以与上次稍微不同的顺序运行.如果您的测试更简单,您可能可以使用一个简单的请求/响应对列表.

我的单位测试中有一个标志,表明我是否处于“记录”模式(即与真实的服务器通话并将此数据结构记录到磁盘),或者如果我处于“播放”模式(与数据结构对话).当我需要测试时,我会记录与服务器的交互,然后再播放.

我使用一些鲜为人知的SenTESTCaseDidStartNotification来跟踪哪个单元测试正在运行,并且隔离我的数据文件.

要牢记的另一件事是,不稳定是所有邪恶的根源.如果您有代码可以使用集合执行任何操作,或者获取当前日期,那么这样做会改变请求和响应,这在离线情况下不起作用.所以要小心那些.

大佬总结

以上是大佬教程为你收集整理的建议使用NSOperations和Coredata在iOS应用程序中测试API请求层全部内容,希望文章能够帮你解决建议使用NSOperations和Coredata在iOS应用程序中测试API请求层所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。