我需要某种if语句来忽略某些代码位,例如如果编码作为单元测试的一部分运行,则弹出对话框。
有没有人有任何想法 - 类似于调试?
答案 0 :(得分:0)
我更喜欢运行时解决方案,而不是基于预处理器的解决方案:
int main(int argc, char* argv[]) {
@autoreleasepool {
BOOL tests = NO;
for (int i = 0; i < argc; i++) {
NSString* argument = [NSString stringWithCString:argv[i] encoding:NSASCIIStringEncoding];
if ([argument isEqualToString:@"-SenTest"]) {
tests = YES;
break;
}
}
if (tests) {
//save YES to a global variable and use it whenewer you want
}
UIApplicationMain(...)
}
}
我实际上在运行单元测试时使用它来使用不同的UIApplicationDelegate
,因此没有UI代码(数据库打开,通知启动等)与我的测试用例发生冲突。