【问题标题】:How to set the value of partialErrorsByItemID on CKError for testing?如何在CKError上设置partialErrorsByItemID的值进行测试?
【发布时间】:2020-09-16 22:01:20
【问题描述】:

我想测试处理 CloudKit 操作的类的错误处理。我希望能够构造一个带有特定部分错误的CKError,以便我可以将它传递到正在测试的操作的完成块中。

我可以使用.partialError 代码初始化CKError,但由于partialErrorsByItemID 字典是get-only,我无法设置部分错误。

let error = CKError(.partialError)
error.partialErrorsByItemID = ["TestItemID": CKError(.zoneNotFound)] // => Cannot assign to property: 'partialErrorsByItemID' is a get-only property

有没有办法控制partialErrorsByItemID的值?

【问题讨论】:

    标签: ios swift unit-testing cloudkit xctest


    【解决方案1】:

    您可以通过在userInfo 字典中提供相关的键/值对并使用init(_:userInfo:) 初始化器来分配partialErrorsByItemID 的值:

    let error = CKError(.partialFailure, userInfo: [
        CKPartialErrorsByItemIDKey: ["TestItemID": CKError(.zoneNotFound)]
    ])
    

    【讨论】:

      猜你喜欢
      • 2020-10-20
      • 2019-07-19
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      相关资源
      最近更新 更多