ios – 如何在Swift中正确测试Core Data

发布时间:2020-03-26 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了ios – 如何在Swift中正确测试Core Data脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
已经有相当多的主题,但我还没有找到一个适用于 Swift(Xcode 6.2)的解决方案.

为了在Swift中测试Core Data支持的类,我生成了新的托管对象上下文,然后我将其注入到我的类中.

//Given   
let testManagedObjectContext = CoreDataTestComposer.setUpInMemoryManagedObjectContext()
let testItems = createFixtureData(testManagedObjectContext) as [TestItem]
self.itemDateCoordinator.managedObjectContext = testManagedObjectContext

//When
let data = self.itemDateCoordinator.do()

//Then
XCTAssert(data.exists)

问题来自于将在Test中创建的MOC传递给正在进行的类.由于实体类是命名空间的,因此Core Data不会获取相应的ManagedObject子类,而是移回NSManagedObject集.循环或对这些对象执行任何操作时(在您的类中将是一组测试项([TestItem]).

例如,违规类ItemDateCoordinator将执行此循环(在从NSFetchRequest中提取相关数据之后)“

for testItem in testItems {
    testItem.doPart(numberOfDays: 10)
}

会导致:

fatal error: NSArray element failed to match the Swift Array Element type

此外,我遇到了一系列信息,没有太多可靠的答案:

>要在创建实体时强制转换实体,我一直在使用Jesse的解决方案,但这不适用于更大范围的测试.
>一个solution has been posted on another question涉及在运行时交换类,但这对我的实体继承没有用.
>在这种情况下,是否有其他方法可以使用Core Data测试对象?你怎么做呢?

解决方法

我准备指向Swift,核心数据和单元测试,但看到你已经找到了它.

总结

以上是脚本之家为你收集整理的ios – 如何在Swift中正确测试Core Data全部内容,希望文章能够帮你解决ios – 如何在Swift中正确测试Core Data所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

其他人正在看

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!

标签: