2015-04-30 2 views
5

Я могу заглушить/проверить метод класса, но у меня возникают трудности с определенными макросами. Я пытаюсь проверить, что один из моих методов вызывает DDLogInfo.Как заглушить CocoaLumberjack или NSLog с OCMockito

Он определяется как и в источнике CocoaLumberjack

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

спасибо!

ответ

1

Все стандартные 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]]); 
} 

К сожалению, с этой стратегией, вы должны прописывать несколько значений, так как OCMock не имеет способ указать общий аргумент без указателя.

 Смежные вопросы

  • Нет связанных вопросов^_^