Подтвердить что ты не робот

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)
    }
    
4b9b3361

Ответ 1

Я нашел решение:

Я полагаю, что те, у кого есть такая проблема, импортировали свои файлы в тестовую цель следующим образом:

введите описание изображения здесь

Так как они должны делать это так:

введите описание изображения здесь

Итак, просто удалите файлы из тестовой цели. И тогда, если вам нужны ваши файлы в тестовой цели, просто используйте ключевое слово @testable в тестовом классе каждый.

введите описание изображения здесь

Таким образом, нет проблем с литьем значений между целями. Это сработало для меня:-) Наслаждайтесь: -)

Подробнее от Swift 2 + Xcode 7: доступ к модулю для тестирования облегчен!!!!