如何快速测试框架中使用的核心数据模型

问题描述 投票:6回答:1

我正在编写一个快速的框架,并且正在使用'pod lib create'命令中的模板。在开发窗格中,我已经创建了核心数据模型文件,并且在框架中使用了核心数据。现在我想为此编写单元测试。这是我的单元测试课程代码:

import XCTest
import CoreData
@testable import MyFramework

class MyClassTests: XCTestCase {

    var testPersistentContainer: NSPersistentContainer?

    override func setUp() {
        let persistentStoreDescription = NSPersistentStoreDescription()
        persistentStoreDescription.type = NSInMemoryStoreType

        let container = NSPersistentContainer(name: "MyCoreDataModelFileName")
        container.persistentStoreDescriptions = [persistentStoreDescription]
        container.loadPersistentStores { (storeDescription, error) in
            if let error = error {
                fatalError(error.localizedDescription)
            }
        }

        self.testPersistentContainer = container
    }

    override func tearDown() {

    }

    func testSomething() {
        // the persistent container I'm trying to use is nil
        XCTAssertNotNil(self.testPersistentContainer)
    }
}

我知道这是什么问题,问题在于测试目标找不到我的核心数据模型文件,并且当我在示例应用程序目标中创建具有适当名称的文件时,上述测试通过了。但是

问题

测试框架的核心数据模型的正确方法是什么?

ios swift unit-testing core-data
1个回答
0
投票

您是否尝试过从框架包中加载Core Data模型?

let managedObjectModel = NSManagedObjectModel.mergedModel(from: nil)

然后您无需将其添加到测试目标中

© www.soinside.com 2019 - 2024. All rights reserved.