这是一个错误:
Could not cast value of type
MyApp.Member
(0x1674daf8) toMyAppTests.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) }
解决方法
我找到了一个解决方案:
我认为那些有这个问题的人把他们的文件导入到这个测试对象:
因为他们应该这样做:
所以,只需从测试目标中删除文件。然后,如果您需要在测试目标中的文件,只需在每个测试类中使用@testable关键字。
这样就不用再在目标之间投射值了。它为我工作:-)享受:-)