繁体   English   中英

如何在OCMock 3.4.2中两次对同一类的模拟对象进行局部划分?

[英]How to partial mock objects of the same class twice in OCMock 3.4.2?

EKSource *source1 = [[EKSource alloc] init];
EKSource *source2 = [[EKSource alloc] init];

id source1Mock = OCMPartialMock(source1);
[[[source1Mock stub] andReturnValue:@(EKSourceTypeBirthdays)] sourceType];

id source2Mock = OCMPartialMock(source2);
[[[source2Mock stub] andReturnValue:@(EKSourceTypeCalDAV)] sourceType];

NSLog([source1 sourceType]); # Getting EKSourceTypeLocal instead of EKSourceTypeBirthdays
NSLog([source2 sourceType]); # Getting EKSourceTypeCalDAV. Expected behaviour.

我正在尝试部分模拟EKSource类的两个对象,如上所示。 模拟source2对象后,source1Mock停止模拟。 如何解决这个问题呢 ? 我在OCMock 3.4.1中没有注意到此问题。

您的实现是正确的。 OCMock的3.4.1版中存在一个错误 该错误已在3.4.3版中修复-请参见发行说明

我建议使用宏对方法进行存根,因为它们的编写更加直观且易于阅读。

例如OCMock([source1 sourceType]).andReturn(@(EKSourceTypeBirthdays))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM