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
  • 30,989
  • 25
  • 91
  • 127
Raphael Oliveira
  • 7,751
  • 5
  • 47
  • 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
  • 30,989
  • 25
  • 91
  • 127