Есть ли способ заставить Alamofire выполнять всю свою работу в основном потоке? Это для тестового сценария, где мне нужно, чтобы основной поток не продолжал выполнение до тех пор, пока не завершатся сетевые вызовы, и я не узнаю статус. Тесты, о которых идет речь, использовались в рамках XCTest
, поэтому я бы использовал XCTestExpectation
для ожидания завершения. Среда, которую я использую, не работает с XCTest
, поэтому мне нужно, чтобы Alamofire был синхронным.
Так как в первых двух комментариях предлагалось, как я должен тестировать, позвольте мне предоставить немного больше контекста.
У меня есть около 100 тестов, которые выполнялись просто отлично за последние 2 года. Тесты - это НЕ модульные тесты, а тесты пользовательского интерфейса с использованием Google EarlGrey 1. EarlGrey 1 предоставляет тестирование пользовательского интерфейса, которое выполняется под XCTest, так что вы можете комбинировать тестирование пользовательского интерфейса с проверкой состояния белого в приложении. Это здорово.
Эрл Грей 1 не поддерживает iOS 13, и поэтому я переношу тесты на EarlGrey 2, который работает поверх XCUITest. Что касается аспекта белого ящика, вы делаете удаленные вызовы из процесса тестирования в пакет, который внедряется в ваше приложение.
В этом случае «mock» - это сервер, но он выполняет сетевые вызовы, и это происходит когда я звоню в тестовую связку. Мне нужно знать, когда они заканчивают sh, чтобы я мог вернуться после того, как они закончили.