TL; DR У меня есть задание [Unit], в ScalaTest / FlatSpec, как правильно проверить, успешно ли выполнено задание за определенный период времени?
У меня есть приложение с сервером-клиентомВ архитектуре взаимодействие между клиентом и сервером не блокируется.Это реализуется с помощью вызовов клиента, возвращающих будущее, которое завершается, когда сервер завершил работу.Важно, что это будущее не возвращает результат, оно просто используется для указания того, что сервер завершил:
val notification: Task[Unit] = myServer.alterState("do this")
Await.result(notification.runAsync, 20.seconds)
Я хочу проверить, что сервер правильно отправляет клиенту уведомления о завершении.,Я тестирую это с FlatSpec от ScalaTest, и мне кажется, что следующий тест должен быть действительным:
"Server" should "notify client upon completion" in {
val notification: Task[Unit] = myServer.alterState("do this")
Await.result(notification.runAsync, 20.seconds)
}
Если для ответа сервера требуется более 20 секунд, Await.result выдастисключение, которое будет перехвачено тестом и завершится неудачей.
Является ли это правильным способом выполнения такого теста в flatspec?Кажется, что вся подходящая структура ориентирована на тестирование значения результатов и отслеживание ожидаемых исключений, но у меня нет результата, возвращаемого, я просто хочу проверить, что будущее заканчивается успешно.