Я использую XCTestExpectations в Xcode 6 (бета-версия 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 (бета-версия 5).
API violation - multiple calls made to
, но потом понял, что мне не хватает этой функцииwait(for: [promise], timeout: 10)
. Но вы добавилиwaitForExpectations
. - person Farras Doko   schedule 31.03.2021