【问题标题】:Unit testing an iOS static library; access AddressBook对 iOS 静态库进行单元测试;访问通讯录
【发布时间】:2014-11-06 07:24:02
【问题描述】:

我正在对一个 iOS 静态库进行单元测试:所以没有 UI,没有应用程序。

其中一个单元测试需要访问地址簿并检索联系人列表。问题是,由于我没有在模拟器上启动任何应用程序,因此应该要求用户授予通讯录权限的弹出窗口永远不会出现。因此,'ABAddressBookRequestAccessWithCompletion' 总是返回 NO。

我发现了这个类似的主题:Grant access to NAB programatically on iOS 7.0 Simulator 但不适用于我的情况,因为我没有启动任何应用程序,只是测试库方法。

在对静态库进行单元测试时,有什么方法可以访问地址簿的联系人吗?

谢谢!

【问题讨论】:

    标签: ios objective-c unit-testing abaddressbook xctest


    【解决方案1】:

    单元测试假设您通过使用测试数据模拟环境并测试预期结果来一次测试一个单元。因此,在您的情况下,您需要模拟来自地址簿的响应,而不是尝试从真实地址簿中获取数据。

    【讨论】:

    • 我一次测试一个单元:获取联系人列表。我已经模拟了用于测试其他功能(排序、过滤、...)的联系人。但在这种特殊情况下,我想测试获取联系人功能。无论如何感谢您的回答
    【解决方案2】:

    我遇到了同样的问题,并阅读了所有关于通过在模拟器中修改数据库来授予访问权限的线程。突然间我用其他方法解决了它:

    • 不是在调试中开始测试,而是在运行模式下(从 JetBrains AppCode 运行它)。

    这向我显示了模拟器“授予访问权限”上的正常对话框,当我给它时,似乎一切都按预期工作,包括从调试器运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多