0

コーディングが単体テストの一部として実行されている場合、ポップダイアログなど、特定のコードビットを無視するには、何らかの if ステートメントが必要です。

デバッグと同様に、これを行う必要があるという考えはありますか?

4

1 に答える 1

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 コード (DB を開く、通知を開始するなど) がテスト ケースと衝突しません。

于 2013-01-08T17:12:26.470 に答える