gpt4 book ai didi

ios - 模拟 CKContainer 进行单元测试

转载 作者:可可西里 更新时间:2023-11-01 01:42:08 25 4
gpt4 key购买 nike

我在我的应用程序中使用 CloudKit 并试图模拟 CKContainer 来测试我的管理器。这是我尝试过的:

    func testAccountStatus() {

class MockCloudContainer: CKContainer {

override func accountStatusWithCompletionHandler(completionHandler: ((CKAccountStatus, NSError!) -> Void)!)
{
completionHandler(CKAccountStatus.NoAccount, NSError())
}
}

let loginManager = LoginManager.sharedInstance
let expectation = expectationWithDescription("iCloudStatus")

var isTestFinished = false
loginManager.iCloudStatusWithCompletionHandler { (status, error) -> Void in

if (isTestFinished) {
return
}

expectation.fulfill()
XCTAssertTrue(status.isEqualToString("NoAccount"), "Status is Available")

}

waitForExpectationsWithTimeout(5, { error in
isTestFinished = true
XCTAssertNil(error, "Error")
})

编译代码时出现错误

:0: error: cannot override 'init' which has been marked unavailable

我使用模拟对象测试我的 LoginManager 类的最佳方式是什么?

谢谢

最佳答案

目前没有办法模拟 CKContainer。唯一的解决方案是在您的应用程序和 CloudKit 代码之间创建一个薄数据访问层,然后模拟该层。但是您仍然无法对薄层本身进行单元测试。

关于ios - 模拟 CKContainer 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28772988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com