OCMock特殊情况记录

221 阅读1分钟

当原方法中存在一个通过反射创建的对象

//原方法代码
id configModule = [[NSClassFromString(@"ConfigModule") alloc] init];
[configModule setValue:moduleConfig forKey:@"configDic"];
//测试中的mock处理
ConfigModule *configModule = [[ConfigModule alloc] init];
id configMock = OCMPartialMock(configModule);
    
__block NSDictionary *configDic;
OCMStub([configMock setValue:[OCMArg any] forKey:@"configDic"]).andDo(^(NSInvocation *invocation){
    [invocation getArgument:&configDic atIndex:2]; 
});

注:通过mock该类的实例对象即可在方法中对该对象做mock处理