I’ve been following along, typing the code from Core Data v3.1, Ch 7 Unit Testing.
After typing the code for “func testRootContextIsSavedAfterAddingCampsite()”, (on page 187-188), with no compiler errors or warnings, I run the test and get "Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
macOS Sierra v10.12.3
Xcode 8.2.1
iOS 10
Any thoughts?
Thank you.
Jerry
What does your TestCoreDataStack class and your addCampiSite(…) method look like?
Thanks for your reply, tetanuss.
I just used FileMerge to compare my TestCoreDataStack and addCampSite() to that of the v3, ch 07-unit-testing final project and they’re identical, however I’ve run the tests in the final project several times and not seen the same problem.
I did see one other forum post that sounded like it is probably the same issue.
Thanks…
Jerry
import CampgroundManager
import Foundation
import CoreData
class TestCoreDataStack: CoreDataStack {
convenience init() {
self.init(modelName: "CampgroundManager")
}
override init(modelName: String) {
super.init(modelName: modelName)
let persistentStoreDescription = NSPersistentStoreDescription()
persistentStoreDescription.type = NSInMemoryStoreType
let container = NSPersistentContainer(name: modelName)
container.persistentStoreDescriptions = [persistentStoreDescription]
container.loadPersistentStores { (storeDescription, error) in
if let error = error as? NSError {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
}
self.storeContainer = container
}
}
public func addCampSite(_ siteNumber: NSNumber, electricity: Bool, water: Bool) -> CampSite {
let campSite = CampSite(context: managedObjectContext)
campSite.siteNumber = siteNumber
campSite.electricity = NSNumber(value: electricity)
campSite.water = NSNumber(value: water)
coreDataStack.saveContext(managedObjectContext)
return campSite
}
Looks also good… I know it’s a stupid question . have you tried to clean the project?
1 Like
funny enough, cleaning the project seemed to resolve a similar issue for me.