Swift 2.0: Не удалось передать значение MyApp.MyCustomClass в MyAppTests.MyCustomClass при использовании Set
Это ошибка:
Не удалось отличить значение типа MyApp.Member
(0x1674daf8) до MyAppTests.Member
(0x4c07248).
Вы можете легко воспроизвести ошибку:
-
Установите два NSManagedObject
@objc(Member)
class Member: NSManagedObject {
@NSManaged var family: Family
}
@objc(Family)
class Family: NSManagedObject {
@NSManaged var members: Set<Member>
}
-
Установите это также в .xcdatamodel
:
-
Затем в TestFile:
func testA() {
let family = Family.MR_createEntityInContext(context)
let father = Member.MR_createEntityInContext(context)
father.family = family
let firstMember = family.members.first
XCTAssertEqual(firstMember!, father)
}
Ответы
Ответ 1
Я нашел решение:
Я полагаю, что те, у кого есть такая проблема, импортировали свои файлы в тестовую цель следующим образом:
![введите описание изображения здесь]()
Так как они должны делать это так:
![введите описание изображения здесь]()
Итак, просто удалите файлы из тестовой цели. И тогда, если вам нужны ваши файлы в тестовой цели, просто используйте ключевое слово @testable
в тестовом классе каждый.
![введите описание изображения здесь]()
Таким образом, нет проблем с литьем значений между целями. Это сработало для меня:-) Наслаждайтесь: -)
Подробнее от Swift 2 + Xcode 7: доступ к модулю для тестирования облегчен!!!!