我正在编写一个 swift 框架,我正在使用来自“pod lib create”命令的模板。在我的开发 pod 中,我创建了一个核心数据模型文件,并在我的框架中使用核心数据。现在我想为它编写单元测试。这是我的单元测试类代码:
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)
}
}
我知道是什么问题,问题是测试目标找不到我的核心数据模型文件,当我在我的示例应用程序目标中创建一个具有正确名称的文件时,上述测试通过。但
问题
测试框架核心数据模型的正确方法是什么?
最佳答案
您是否尝试过从框架包中加载 Core Data 模型?
let managedObjectModel = NSManagedObjectModel.mergedModel(from: nil)
然后你不需要将它添加到你的测试目标
关于ios - 如何在swift中测试框架中使用的核心数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58214049/