Ios 如何使用Ocmocito存根CocoaLumberjack或NSLog

Ios 如何使用Ocmocito存根CocoaLumberjack或NSLog,ios,objective-c,unit-testing,mocking,ocmockito,Ios,Objective C,Unit Testing,Mocking,Ocmockito,我可以存根/验证类方法,但在定义宏时遇到困难。我正在尝试测试我的一个方法调用DDLogInfo 在CocoaLumberjack的资料中是这样定义的 #define DDLogInfo(frmt, ...) LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, DDLogFlagInfo, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) 谢谢 所有标准的DDLog宏调用+[DDLog log:le

我可以存根/验证类方法,但在定义宏时遇到困难。我正在尝试测试我的一个方法调用DDLogInfo

在CocoaLumberjack的资料中是这样定义的

#define DDLogInfo(frmt, ...)    LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, DDLogFlagInfo,    0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)

谢谢

所有标准的
DDLog
宏调用
+[DDLog log:level:flag:context:file:function:line:tag:format:
,因此使用OCMock,您将验证
DDLogInfo
是否由以下人员调用:

-(void)TestMethodCallsDloginfo{
id mockDDLog=OCMClassMock([DDLog类]);
[obj方法调用SDDLoginfo];
OCMVerify([mockDDLog log:YES level:DDLogLevelAll标志:DDLogFlagInfo上下文:0文件:[OCMArg anyPointer]函数:[OCMArg anyPointer]行:58标记:[OCMArg any]格式:[OCMArg any]]);
}
不幸的是,使用这种策略,您必须硬编码几个值,因为OCMock无法指定通用的非指针参数