Przepraszamy za to pytanie typu noob, ale próbuję przetestować połączenie, ale nie mogę zweryfikować zwrócenia żądania, ponieważ test kończy się przed zakończeniem obsługi końcowej szansa na wykonanie. Aby zilustrować:Jak przetestować polecenie sendAsynchronousRequest: na XCTest
-(void)testConnection
{
[[Conector sharedInstance] performAsynchronousRequestWithServerRequest:_srvRequest completionHandler:^(RequestAsynchronousStatus finishStatus, NSData *data) {
if (finishStatus == RequestAsynchronousOK){
_data = data;
NSLog(@"Data OK");
}
}];
XCTAssertNotNil(_data, @"Data was nil");
}
Kiedy próbuję potwierdzić, _data zawsze będzie zerowa, ponieważ procedura obsługi zakończenia nie została jeszcze wykonana. Istnieje mechanizm, który zmusza test do oczekiwania, aż otrzymam odpowiedź z metody sendAsynchronousRequest :. Z góry dzięki.
Dzięki stary, to jest dokładnie to, czego szukasz! –
Warto wiedzieć, że jednym ze znanych problemów wymienionych w readme XCAsyncTestCase jest to, że "testy zawieszają się po uruchomieniu pod robotami XCode". Więc jeśli używasz robotów budujących, możesz spojrzeć na 'xctest-additions' autorstwa iheartradio. – eremzeit