Bar*_*zyk 27 xcode unit-testing ios swift swift2
这是一个错误:
无法将类型
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>
}
Run Code Online (Sandbox Code Playgroud)在您的设置中也可以.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)
}
Run Code Online (Sandbox Code Playgroud)Bar*_*zyk 33
我找到了一个解决方案:
我想那些有这种问题的人,用这种方式将他们的文件导入测试目标:
因为他们应该这样做:
因此,只需从测试目标中删除文件即可.然后,如果您需要测试目标中的文件,只需@testable在每个测试类中使用关键字.
这样,在目标之间再次投射值没有问题.它对我有用:-)享受:-)
阅读更多Swift 2 + Xcode 7:单元测试访问变得轻松!!!!