CloudKit 的单元测试

Posted

技术标签:

【中文标题】CloudKit 的单元测试【英文标题】:Unit testing for CloudKit 【发布时间】:2015-09-22 14:26:22 【问题描述】:

假设我有几个应用程序目标,主要的一个是具有所有必需 CloudKit 权利的应用程序本身。应用程序工作正常并通过 CloudKit 获取数据。我有以下获取 CloudKit 数据库的类。

import CloudKit

class Database 

    static let container = CKContainer(identifier: "iCloud.com.identifier")

    static let publicDatabase = 
        return container.publicCloudDatabase
    

    static let privateDatabase = 
        return container.privateCloudDatabase
    

现在假设有一个函数可以从 CloudKit 中检索一些记录。

public func retrieveData(completion:(CKRecord?) -> () 

函数在应用程序中使用时工作正常,但是当我为它编写单元测试并运行它时,CloudKit 容器在此行崩溃:

static let container = CKContainer(identifier: "iCloud.com.identifier")

有以下信息:

*** 由于未捕获的异常“CKException”而终止应用程序,原因:“应用程序缺少必需的权利 com.apple.developer.icloud-services”。

请注意,我在主应用程序目标中拥有所有必需的权利并且它们工作正常,所以我想知道有什么方法可以使它在测试目标中工作?

【问题讨论】:

【参考方案1】:

确保您在测试类中使用的主要目标中的所有类也设置了您的测试目标

【讨论】:

以上是关于CloudKit 的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 单元格未填充 CloudKit 数据

使用动态原型单元将 CloudKit 记录从 TableViewController A 传递到 TableViewControllerB

Django单元测试测试视图问题,怎么解决

.NET 单元测试的艺术&单元测试之道C#版

什么是单元测试?如何做好单元测试?

测试篇——初探单元测试