【发布时间】:2013-10-21 20:56:40
【问题描述】:
我的MessageSerializer 类有一个方法,其签名如下所示:
- (Message *)deserialize:(const void *)buffer length:(NSUInteger)length;
我可以使用 OCMockito 来存根吗? serializer 是我的模拟序列化程序,编译器在我的测试方法中批准了以下所有这些形式:
[given([serializer deserialize:[data bytes] length:[data length]]) willReturn:message];
[given([serializer deserialize:(__bridge const void *)anything() length:[data length]]) willReturn:message];
[given([serializer deserialize: CFBridgingRetain(anything()) length:[data length]]) willReturn:message];
...但是当调用deserialize:length: 时,它们都不会导致模拟返回“消息”给被测类。
【问题讨论】:
-
几个小时后再看一遍,OCMockito 会很高兴地返回我从上述存根请求的内容,只要我首先将我的模拟传递给被测单元(即问题完全是我的错,我一直被 Objective-C 中的消息传递 nil 完全有效的事实搞砸了。)
标签: ios objective-c unit-testing ocmockito