핵심 데이터 앱에 단위 테스트를 추가하고 싶지만 테스트간에 컨텍스트를 재설정하는 방법은 확실합니다. 데이터가 아닌, 내가 tearDown
함수 내에서 context.reset()
를 호출하려고어떻게 핵심 데이터 스택을 해체할까요?
class PaymentTests: XCTestCase {
var context: NSManagedObjectContext!
override func setUp() {
super.setUp()
let coreDataStack = CoreDataStack(storeType: .inMemory)
context = coreDataStack.context
}
}
하지만 :
이 내 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
}
}
그리고 이것은 내가 내 테스트에 사용하고 어떻게 리셋은 항상 지속됩니다.
그럼 핵심 데이터 스택을 해체 할 수 있습니까?