Objective c 单元测试#ifdef
基于ifdef对行为改变的代码进行单元测试的最佳方法是什么 e、 gObjective c 单元测试#ifdef,objective-c,unit-testing,Objective C,Unit Testing,基于ifdef对行为改变的代码进行单元测试的最佳方法是什么 e、 g 您应该只需要测试发布版本,因为这是用户看到的 要真正回答您的问题:您可以将该方法拆分为3个方法 + (NSString*) someMethod:(NSString*)value { #ifdef DEBUG return [self someMethod_debug:value]; #else return [self someMethod_release:value]; #endif } + (void)
您应该只需要测试发布版本,因为这是用户看到的 要真正回答您的问题:您可以将该方法拆分为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\u debug
和someMethod\u release
是否应该将someMethod\u debug包装在ifdef中?您不必这样做。少数冗余方法的开销不大。但是如果您将它包装在ifdef
中,那么必须使用DEBUG
标志编译它的单元测试代码
+ (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
}