3

This link shows how to capture an argument of a mock object using Kiwi.

Is there a way to capture arguments of static method calls? It seems to me that this only work with instance methods.

Cristik
  • 28,596
  • 24
  • 84
  • 120
Raphael Oliveira
  • 7,611
  • 4
  • 44
  • 55

1 Answers1

0

Considering that the same message dispatching mechanism is used for both instance and class methods, you can safely spy on class methods.

@interface MyObject: NSObject
+ (void)doNoOpWithObject:(NSObject*)obj;
@end

@implementation MyObject
+ (void)doNoOpWithObject:(id)object {}
@end


SPEC_BEGIN(StaticSpy)
it(@"captures static method arguments", ^{
    KWCaptureSpy *spy = [MyObject captureArgument:@selector(doNoOpWithObject:) atIndex:0];
    [MyObject doNoOpWithObject:@18];
    [[spy.argument should] equal:@18];
});
SPEC_END
Community
  • 1
  • 1
Cristik
  • 28,596
  • 24
  • 84
  • 120