我有一个iOS项目,在模拟器上运行良好,但是当我从测试包中进行工作时,似乎无法很好地链接到Core Data资源。
我已经在测试类的设置函数中从内存中创建了NSManagedObjectContext。然而,当我尝试运行程序时,测试函数失败,并且控制台输出了错误信息。
我已经在测试类的设置函数中从内存中创建了NSManagedObjectContext。然而,当我尝试运行程序时,测试函数失败,并且控制台输出了错误信息。
"An NSManagedObject of class 'Projectname.Deck' must have a valid NSEntityDescription."
有什么我忽略的东西吗?我希望能够在开发过程中为我的应用程序数据结构编写单元测试。
谢谢!
编辑
测试类的相关部分:
class ProjectNameTests: XCTestCase {
var testDeck: Deck? = nil
func setUpInMemoryManagedObjectContext() -> NSManagedObjectContext {
let managedObjectModel = NSManagedObjectModel.mergedModel(from: [Bundle.main])!
let persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
do {
try persistentStoreCoordinator.addPersistentStore(ofType: NSInMemoryStoreType, configurationName: nil, at: nil, options: nil)
} catch {
print("Adding in-memory persistent store failed")
}
let managedObjectContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = persistentStoreCoordinator
return managedObjectContext
}//setUpInMemoryManagedObjectContext
override func setUp() {
super.setUp()
self.context = setUpInMemoryManagedObjectContext()
testDeck = Deck(context: context)
testDeck!.name = "Test Deck"
}//setUp
}//ProjectNameTests