iOS通过UnitTest访问AddressBook联系人;如何设置权限?

这个问题涉及使用iPhone模拟器与单元测试.我已经编写了一系列测试,测试我们的数据存储,合并或不合并我们可以从用户的联系人访问的数据,具体取决于联系人是否存在.我想要一种设置权限的方法,以便当用户授予访问联系人的权限时(A),以及(B)当用户拒绝访问联系人时.我想要的仅仅是在单元测试中,以硬编码权限值.我不想提示它,因为这将阻止单元测试运行,同时额外的困难,权限仍然设置为该值永远.

所以我接触到SO社区,通过控制单元测试中的权限,看看还有谁可能正在测试他们的代码与通讯录联系人的交互.有没有人有一个食谱,允许我测试用户的双方给和拒绝访问通讯录联系人?

我正在使用XCTestCase父类.如果这有助于解决这个问题,我会开放使用别的东西.

我已经阅读了这方面的所有相关SO问题和答案.他们专注于帮助人们编写许可问题例程并在应用程序中访问通讯录联系人.我知道如何做那个部分.我正在谈论如何在单元测试中伪造地址簿权限.

解决方法

起初我这样做
1)在应用程序中 – >
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusDenied) ...
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusRestricted) ...

2)为了测试这个问题,我使用OCMock类,用于预定义的值和方法
链接到这里 – http://ocmock.org

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...