On iOS 6 and later,you must request access to an entity type after the event store is initialized with requestAccesstoEntityType:completion: for data to return.
……在我们运行单元测试的环境中很难处理.
目前我正在考虑使用EKEvent对象的一些NSArray来实现EKEventStore的mock子类.
是否有可能对EKEventStore进行单元测试而不编写这样的模拟子类,它会模仿我们在同步例程中使用的所有方法?
解决方法 最近我发现最终可以在Simulator中使用特殊的Hack来做到这一点:有TCC.db数据库,其中存储了这个和其他一些访问权限.我能够设置我的单元测试套件,以便在启动时,使用与EKAuthorizationStatusAuthorized对应的值修改TCC.db表.完成此更改后,可以使用对EKEventStore的完全访问权限编写所有后续测试.
首先,这里有一点解释:Grant access to NAB programatically on iOS 7.0 Simulator.
还有一个很好的项目JPSimulatorHacks,其中包含完成此Hack的代码.它支持授予Calendar权限.
现在,我可以对我的Calendar Sync代码进行单元测试,而无需详尽地记录EK类.
重要细节:
无法访问TCC.db,至少当您的测试目标未指向Host Application中的实际应用程序时,我没有找到它.当我确实将Host Application设置为None时,我无法找到TCC.db并因此授予任何内容.这就是为什么目前我的单元测试目标我创建了人工应用程序MyAppnameTestsApp所以现在我将我的单元测试目标的主机应用程序设置为MyAppnameTestsApp.这给了我有效的应用程序与TCC.db,同时我不需要我在运行Cmd U时加载整个应用程序.
总结以上是内存溢出为你收集整理的ios – 有机会针对EKEventStore编写单元测试吗?全部内容,希望文章能够帮你解决ios – 有机会针对EKEventStore编写单元测试吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)