Swift 2.0:使用Set时无法将MyApp.MyCustomClass值转换为MyAppTests.MyCustomClass
这是一个错误:
无法将types
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
也可以.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) }
我find了一个解决scheme:
我想那些有这个问题的人会这样把他们的文件导入testing目标:
既然他们应该这样做:
所以,只要从您的testing目标中删除文件。 然后,如果您需要在testing目标中使用您的文件,请在每个testing课程中使用@testable
关键字。
这样,目标之间的铸造值就没有问题了。 它为我工作:-)享受:-)
阅读更多从Swift 2 + Xcode 7:unit testing访问变得容易!