OCMock 对象真的是 class 的实例吗?

Are OCMock objects really instances of a class?

当我们用OCMock创建mock对象时,例如

id classMock = OCMClassMock([SomeClass class]);

classMock 是后台 SomeClass 的真实对象,还是某种 hack?

谢谢。

Class 模拟是 OCClassMockObject (source) 的实例。该实现使用正常的转发机制,我不会称之为 hack。也就是说,部分模拟(显然)是真实的实例,当涉及到它们的 class 时,有一些 "magic" 正在发生。