コーディングが単体テストの一部として実行されている場合、ポップダイアログなど、特定のコードビットを無視するには、何らかの if ステートメントが必要です。
デバッグと同様に、これを行う必要があるという考えはありますか?
コーディングが単体テストの一部として実行されている場合、ポップダイアログなど、特定のコードビットを無視するには、何らかの if ステートメントが必要です。
デバッグと同様に、これを行う必要があるという考えはありますか?
私は、プリプロセッサに基づくソリューションではなく、ランタイム ソリューションを好みます。
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 コード (DB を開く、通知を開始するなど) がテスト ケースと衝突しません。