3

私はXCTestExpectation多くのテストで使用していますが、時々(非常にランダムに)いくつかの期待が満たされないことがあります(そうあるべきだと確信していますが)。

この問題を調査しているときに、一部の期待はメイン スレッドで満たされ、一部はバックグラウンド スレッドで満たされていることに気付きました。そして、これまでのところ、これらの問題はバックグラウンド スレッドで解決されたものです。

バックグラウンド スレッドからの期待を満たすことは安全ですか? それに関する明確な情報は見つかりませんでした。

以下は、私がどのように使用するかの例ですXCTestExpectation:

__block XCTestExpectation *expectation = [self expectationWithDescription:@"test"];

[self doSomethingAsyncInBackgroundWithSuccess:^{
    [expectation fullfill];
}];

[self waitForExpectationsWithTimeout:10.0 handler:^(NSError *error) {
    expectation = nil;
    if (error) {
        NSLog(@"Timeout Error: %@", error);
    }
}];
4

1 に答える 1