Я просмотрел это в течение нескольких часов. Я использую MagicalRecord. Все хорошо в применении, но в единичных тестах я получаю ошибку swift_dynamicCastClassUnconditional
когда я запускаю следующийMagicalRecord = swift_dynamicCastClassUnconditional только в модульных тестах
func testExampleQCPerson() {
let person = QCPerson.MR_createEntity() as QCPerson //error happens here
person.displayOrder = NSNumber(integer: 0)
let personB = QCPerson.MR_createEntity() as QCPerson
personB.displayOrder = NSNumber(integer: 0)
personB.updateOrderForPrevious()
XCTAssert(person.displayOrder.integerValue == 1, "should have incremented")
}
как последние сообщения свидетельствуют, что мне нужно сделать мои модели Objective C дружественные с @objc(ModelName)
... так я уже сделал это:
import Foundation
import CoreData
@objc(QCPerson)
class QCPerson: NSManagedObject {
@NSManaged var person_id: NSNumber
@NSManaged var displayOrder: NSNumber
@NSManaged var contactRefrence: String
@NSManaged var name: String
@NSManaged var actionType: String
}
в то время как это делает остальную часть приложения функционального, я действительно предпочитаю, чтобы быть в состоянии проверить вещи. я добавлю, что я могу сделать это в модульном тесте
let xx: AnyObject = QCPerson.MR_createEntity() as AnyObject
XCTAssertNotNil(xx, "should exists")
, но это не помогает мне с моим классом конкретными потребностями
покончив с MagicalRecord для испытаний, а также с использованием стандартным «шаблонным стек Core Data» - благодаря [этому посту ] (http://alanduncan.me/blog/2014/09/28/swift-core-data-tests/) я могу по крайней мере проверить свои модели и их расширения – mcconkiee
Вы когда-нибудь выясняли, как сделать эту работу WITH MagicalRecord ? – AnthonyM