我正在使用OCMock在XCTest测试套件中创建一些类模拟。我还有一个特定的单元测试,我在一个单独的测试类/模块中没有模拟。此测试查询运行时以查找具有符合NSSecureCoding的特定前缀的一组我的类,并对它们执行多个测试。
在测试中,我使用objc_getClassList获取类列表。我看到一些看起来像是被嘲笑的课程,例如:
FooType-0x004fba20-3301757833
我似乎无法弄清楚为什么他们仍在闲逛,因为:
我已经将它缩小到这样一个事实:模拟对象被复制到另一个非模拟对象的初始化器中,在另一个测试和测试类/模块中。
显然,如果你试图向这些类发送消息或操纵它们,你会崩溃类似于“NSInternalInconsistencyException”,“没有模拟类FooType-(地址掩码)-3301757833”。
我的印象是元类和模拟在取消分配或者调用-stopMocking时会恢复正常。