私は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);
}
}];