Для примитивных аргументов вы должны сделать небольшой танец. Скажем, мы издевались NSMutableArray и хотел проверить звонки
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
Вместо
[verify(mockArray) replaceObjectAtIndex:[argument capture] withObject:anything()];
, который дает вам тип конфликта, мы просто фиктивное значение (0 будет делать отлично), но добавить OCMockito называют переопределить сличитель по данному индексу аргумента:
[[verify(mockArray) withMatcher:[argument capture] forArgument:0]
replaceObjectAtIndex:0 withObject:anything()];
индекс аргумент -withMatcher:forArgument:
является 0 на основе для первого аргумента, так что это говорит, «для первый аргумент, игнорировать все, что было передано, и использовать этот матчи вместо этого ».
Существует также метод -withMatcher:
который только делает это на первый аргумент, так что этот пример может быть упрощен до
[[verify(mockArray) withMatcher:[argument capture]]
replaceObjectAtIndex:0 withObject:anything()];
[значения аргумента], а затем возвращает NSNumber. – huggie
Это правильно. Затем вы берете этот NSNumber и спрашиваете его, что хотите. –