Я использую XCTestExpectations в Xcode 6 (Beta 5) для асинхронного тестирования. Все мои асинхронные тесты проходят индивидуально каждый раз, когда я их запускаю. Однако, когда я пытаюсь запустить весь пакет, некоторые тесты не проходят, и приложение выходит из строя.
Ошибка, которую я получаю, говорит API violation - multiple calls made to -[XCTestExpectation fulfill]
. Действительно, это не верно в рамках одного метода; мой общий формат для моих тестов показан ниже:
- (void) someTest {
/* Declare Expectation */
XCTestExpectation *expectation = [self expectationWithDescription:@"My Expectation"];
[MyClass loginOnServerWithEmail:@"[email protected]" andPassword:@"asdfasdf" onSuccess:^void(User *user) {
/* Make some assertions here about the object that was given. */
/* Fulfill the expectation */
[expectation fulfill];
}];
[self waitForExpectationsWithTimeout:5.0 handler:^(NSError *error) {
/* Error handling here */
}];
}
Опять же, эти тесты проходят, когда запускаются индивидуально, и на самом деле они выполняют сетевые запросы (работают точно так, как предполагалось), но вместе, сбор тестов не запускается.
Я смог посмотреть этот пост здесь, но не смог заставить решение работать для меня.
Кроме того, я запускаю OSX Mavericks и использую Xcode 6 (Beta 5).