【发布时间】:2017-05-23 00:18:27
【问题描述】:
我想为我的 Core Data 应用添加单元测试,但我知道如何重置测试之间的上下文。
这是我的CoreDataStack 对象:
public final class CoreDataStack {
var storeType: StoreType!
public init(storeType: StoreType) {
self.storeType = storeType
}
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Transaction")
container.loadPersistentStores(completionHandler: { (description, error) in
if let error = error {
fatalError("Unresolved error \(error), \(error.localizedDescription)")
} else {
description.type = self.storeType.type
}
})
return container
}()
public var context: NSManagedObjectContext {
return persistentContainer.viewContext
}
}
这就是我在测试中使用它的方式:
class PaymentTests: XCTestCase {
var context: NSManagedObjectContext!
override func setUp() {
super.setUp()
let coreDataStack = CoreDataStack(storeType: .inMemory)
context = coreDataStack.context
}
}
我尝试在tearDown 函数中调用context.reset(),但是数据没有重置,它始终是持久的。
那么我怎样才能拆掉核心数据栈呢?
【问题讨论】:
标签: ios swift core-data swift3 xctest