在模拟器中运行应用程序时删除本地通知的iOS权限警报

Lir*_*dav 15 ios kif ios-permissions

我正在尝试在KIF上编写一个验收测试,该应用程序很早就要求提供本地通知权限.不幸的是,由于iOS模拟器安全原因,无法使用KIF自动接受iOS权限警报.根据/sf/answers/1991062041/,有些方法可以禁用位置,地址簿,日历和照片的权限警报,但我找不到禁用本地通知权限的方法.我尝试了链接问题的权利方法,但没有以下任何键工作:

kTCCServiceNotifications
kTCCServiceNotification
kTCCServiceLocalNotification
kTCCServiceLocalNotifications
Run Code Online (Sandbox Code Playgroud)

还有其他想法吗?现在我正在通过更改生产代码来解决这个问题,以便在验收测试运行时有条件地禁用本地通知,但理想情况下我不必这样做.

Chr*_*nzo 2

不幸的是,我认为在自动化测试中没有一个好的方法可以做到这一点。我知道即使重置模拟器有时也不足以重置权限。我将您的测试设计为不测试系统调用,而是测试您自己的应用程序代码。

根据用户是否允许通知来测试不同功能的一种方法是提取调用以检查权限,然后在测试中将此方法存根。此方法将是最佳实践,因为目标不是测试 iOS 是否正常工作,而是测试您的应用程序代码是否正确。