使用Kiwi捕获静态方法调用的参数

时间:2013-10-30 17:54:58

标签: ios mocking kiwi

这个link展示了如何使用Kiwi捕获模拟对象的参数。

有没有办法捕获静态方法调用的参数?在我看来,这只适用于实例方法。

1 个答案:

答案 0 :(得分:0)

考虑到实例和类方法使用相同的message dispatching mechanism,您可以安全地监视类方法。

@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