kre*_*eek 5 unit-testing mocking objective-c ios ocmockito
我可以存根/验证类方法,但是我对定义的宏有困难.我正在尝试测试我的一个方法调用DDLogInfo.
它在CocoaLumberjack源代码中定义如此
#define DDLogInfo(frmt, ...) LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, DDLogFlagInfo, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
谢谢!
所有标准DDLog宏都调用+[DDLog log:level:flag:context:file:function:line:tag:format:],因此使用 OCMock,您将验证它DDLogInfo是通过以下方式调用的:
- (void)testMethodCallsDDLogInfo {
id mockDDLog = OCMClassMock([DDLog class]);
[obj methodThatCallsDDLogInfo];
OCMVerify([mockDDLog log:YES level:DDLogLevelAll flag:DDLogFlagInfo context:0 file:[OCMArg anyPointer] function:[OCMArg anyPointer] line:58 tag:[OCMArg any] format:[OCMArg any]]);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用这种策略,您必须硬编码多个值,因为 OCMock 无法指定通用非指针参数。
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |