【发布时间】:2012-07-09 12:33:50
【问题描述】:
我正在尝试设置要验证的 OCMock。
我有一个协议TaskManagerDelegate,其中包含以下方法,
- (void) addTasks:(NSArray * ) tasksToAdd;
像这样设置我的模拟对象后,
id mockTaskManagerDelegate = [OCMockObject mockForProtocol:@protocol(TaskManagerDelegate)];
我像这样将对象分配给被测类,
taskManager.Whatever = mockTaskManagerDelegate;
我在 taskManager 上调用了一个方法,然后想验证在 TaskManagerDelegate 上调用了 addTasks 方法,并且传递给它的数组只包含一个对象。
到目前为止,我已经使用 OCMArg 类来检测是否传入了参数,但我很难理解如何检查发送的特定类型是否发送到模拟,或者发送到模拟的对象是否通过某些测试(例如, .count 正好是一个)。我来自 C# 背景,通常会使用 Moq,您可以在其中使用 lamda 函数对发送到模拟对象的参数进行特定检查。
有谁知道如何使用 OCMock 做到这一点,或者如果出于某种概念上的原因无法做到这一点?
谢谢,
【问题讨论】:
标签: objective-c ios cocoa unit-testing ocmock