Skip to content

Instantly share code, notes, and snippets.

@Daemon-Devarshi
Created June 19, 2017 09:19
Show Gist options
  • Save Daemon-Devarshi/61b478690645386baa0e2e4950ae45af to your computer and use it in GitHub Desktop.
Save Daemon-Devarshi/61b478690645386baa0e2e4950ae45af to your computer and use it in GitHub Desktop.
An extension on XCTestCase to setup an in-memory persistent store coordinator
import Foundation
import XCTest
import CoreData
@testable import MainModule
extension XCTestCase {
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
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment