В моем приложении для модульного тестирования нашей команды тяжело полагается на инструмент для выполнения асинхронного теста - complourencyExtras - withdmainserialexecutor
Этот инструмент добавляет возможности для запуска тестового кода в основной потоке, а также мы могли бы добавить await askait.yield () , чтобы ждать, чтобы это было выполнено, чтобы выполнить, что он выполняет. Выразился, что я хочу сократить время выполнения.override func invokeTest() {
withMainSerialExecutor {
super.invokeTest()
}
}
В начале каждого теста и удалить withmainserialexecutor везде.
работает, и теперь мои асинхронные тесты работают быстрее. То, что я сделал, в основном заставляю каждый тест выполнять в основном потоке, но вручную добавлено вручную withmainserialexecutor Block сделал то же самое. Может быть, у кого -то есть другое решение сократить время выполнения теста асинхронного теста?func testHasLoaded() async {
/// Arrange
sut = makeVM()
var hasLoaded = String()
sut.dataHasFinishedLoading = {
hasLoaded = "hasLoaded"
}
/// Assert
await Task.megaYield()
XCTAssertEqual(hasLoaded, "hasLoaded")
}
< /code>
Original (0,11 секунды): < /p>
func testHasLoaded() async {
withMainSerialExecutor {
/// Arrange
sut = makeVM()
var hasLoaded = String()
sut.dataHasFinishedLoading = {
hasLoaded = "hasLoaded"
}
/// Assert
await Task.megaYield()
XCTAssertEqual(hasLoaded, "hasLoaded")
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ge-in-swif