我正在编写一个快速的框架,并且正在使用'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)
}
}
我知道这是什么问题,问题在于测试目标找不到我的核心数据模型文件,并且当我在示例应用程序目标中创建具有适当名称的文件时,上述测试通过了。但是
问题
测试框架的核心数据模型的正确方法是什么?
您是否尝试过从框架包中加载Core Data模型?
let managedObjectModel = NSManagedObjectModel.mergedModel(from: nil)
然后您无需将其添加到测试目标中