【问题标题】:Can OCMockito stub a method that takes a `const void *` parameter?OCMockito 可以存根一个采用“const void *”参数的方法吗?
【发布时间】: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


【解决方案1】:

OCMockito 目前不支持const void * 参数。我建议制作一个手卷存根。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多