在观察下嘲笑一个物体

时间:2012-12-10 19:59:30

标签: key-value-observing ocmock

我在模拟已经在KVO观察下的对象时看到异常。这是一个显示问题的简化示例:

[sourceObject addObserver:destinationObject forKeyPath:@"stringProperty" options:NSKeyValueObservingOptionNew context:nil];
[OCMockObject partialMockForObject:sourceObject];
[sourceObject removeObserver:destinationObject forKeyPath:@"stringProperty"];

当调用“-removeObserver:forKeyPath:”时,我得到一个异常,我目前没有观察到该对象。如果我在调用“-removeObserver:forKeyPath:”之前在模拟上调用“-stopMocking”,一切正常。

1 个答案:

答案 0 :(得分:0)

OCMock和KVO都动态地将对象子类化,因此它们无法一起正常工作。唯一真正的解决方案是以不必模拟观察对象的方式修改测试。最糟糕的情况是,您必须创建自己的测试子类,以便在测试时使用。