我有三个类:ClassA,ClassB和ClassC。
ClassC继承自继承自ClassA的ClassB。
我正在尝试编写一个单元测试来验证ClassC是否继承自ClassB:
XCTAssertTrue([ClassC isSubclassOfClass:[ClassB class]]);
这会返回false。
XCTAssertTrue([ClassC isSubclassOfClass:[ClassA class]]);
返回true。
[ClassC class] superclass]
返回ClassB。
当我在控制台中测试[ClassC isSubclassOfClass:[ClassB class]]
时,它也会返回true,即使我在单元测试中的代码在同一测试中返回false之前立即测试它也是如此!
任何人都可以解释这是怎么发生的吗?
我从评论中尝试了布莱恩的建议。从我的单元测试中记录我得到:
0x102a8c4e0 0x110d21820
我从控制台登录:
0x102a8c4e0 0x102a8c4e0
答案 0 :(得分:2)
您可能已将某些类添加到应用目标和单元测试目标中。
您的课程应该只会添加到应用目标。
从您的编辑中,看起来它是ClassB
的错误 - 但是值得检查所有这三个。
SenTest / XCTest使用测试工具,使应用程序中包含的类可用于测试,而无需明确包含其实现。
包括两者都给了你重复的类,这就是为什么他们有不同的内存地址。