我可以为我的应用重置模拟器的联系人和位置权限设置,以模拟首次使用场景吗?

bne*_*ely 2 core-location abaddressbook xcode-ui-testing

我的iOS应用程序目前有一个iOS 7的部署目标(虽然我的方案运行iOS 9.2模拟器),以及与AddressBook,AddressBookUI和CoreLocation框架的链接.我在Xcode 7中有一套Swift UI测试(不在Instruments中).当用户首次使用我的应用时,系统会要求他们在应用运行时访问其联系人及其位置.由于这涉及需要完美执行的大量代码,因此我希望自动化所有可能的结果并确保UI处于所需状态.

我可以使用Xcode UI测试重置模拟器的设置以访问联系人和位置吗?例如,我可以setUp()在我的测试用例类中的函数中实现它.我找到了一些关于如何响应对话框的教程,但在我到达那一点之前,我需要模拟请求权限的条件.这是一个解释如何响应此类警报的问题.

Joe*_*tti 5

简答:不.UI测试没有用于重置模拟器的API(因此重置权限对话框).我建议向Apple提交一份错误报告,解释为什么需要这个.

UI测试不容易测试"不快乐的路径".在您的问题中,您提到测试所有权限流.如果不在测试之间手动重置模拟器,这将是不可能的.我建议只测试UI测试的快乐路径,并将其他案例留给单元测试.

我知道这并不理想,但现在这是一个不错的解决方法.对于它的价值,这是我在测试我们的应用程序时采用的方法.(该应用程序要求推送通知和位置权限.)