Reputation: 7841
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.
Upvotes: 3
Views: 391
Reputation: 32922
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
Upvotes: 0