【问题标题】:How to exclude NSManagedObject autogenerated classes of Coredata Entity from UnitTest in Xcode?如何从 Xcode 中的 UnitTest 中排除 NSManagedObject 自动生成的 Coredata 实体类?
【发布时间】:2020-08-30 18:27:18
【问题描述】:

我正在处理一个 Swift 项目的测试覆盖率。最终覆盖显示 Entity+CoredataProperties 类未覆盖。这些是核心数据实体的自动生成文件。有什么方法可以将这些文件排除在测试覆盖范围之外?还是我也应该尝试为他们编写测试用例?

【问题讨论】:

  • 不应该在你使用实体类的代码测试中涵盖这些内容吗?
  • 没有。我已经尝试在测试中为实体插入和获取代码。但它没有用。

标签: swift xcode unit-testing core-data


【解决方案1】:

我确实解决了这个问题。创建了一个NSInMemoryStoreType 存储容器。然后简单地创建并获取托管对象。

//Create object
 
let _ = entity.init(context: self.coreDataStack.backgroundContext)

try! coreDataStack.backgroundContext.save()

//Fetch object    
let request : NSFetchRequest<ClassEntity> = ClassEntity.fetchRequest() //This will cover the managed object class with fetch request.
             
let items = try! self.coreDataStack.backgroundContext.fetch(request)

对所有实体类都试过这个方法。然后对所有自动生成的实体类进行 100% 的覆盖。 我不确定这是否是解决我问题的完美方法。

【讨论】:

    猜你喜欢
    • 2011-05-02
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2013-10-04
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多