单元测试#ifdef

时间:2014-01-09 00:11:08

标签: objective-c unit-testing

基于ifdef对行为进行更改的单元测试代码的最佳方法是什么?

e.g。

+ (NSString*) someMethod:(NSString*)value {
    //Do some stuff ...
#ifdef DEBUG
    //Tell user about error
#else
    //Suppress error
#endif
}

1 个答案:

答案 0 :(得分:1)

你应该只需要测试发布版本,因为这是用户看到的内容。

实际回答你的问题:你可以将方法拆分为3方法

+ (NSString*) someMethod:(NSString*)value {
#ifdef DEBUG
    return [self someMethod_debug:value];
#else
    return [self someMethod_release:value];
#endif
}

+ (void)someMethod_debug:(NSString *)value {
    //Do some stuff ...
    //Tell user about error
}

+ (void)someMethod_release:(NSString *)value {
    //Do some stuff ...
    //Suppress error
}

然后您可以单独测试someMethod_debugsomeMethod_release