У меня есть следующий тест блок:Выход блока теста распечатывается после выполнения теста закончил
test("All - gather message") {
def fs: List[Future[Int]] = List(Future{
blocking {Thread.sleep(4000)}
println("Finished sleeping in future 1!")
1
}, Future {
blocking {Thread.sleep(3000)}
println("Finished sleeping in future 2!")
2
}, Future {
blocking {Thread.sleep(2000)}
println("Finished sleeping in future 3!")
3
})
val f: Future[List[Int]] = Future.all(fs)
f onComplete { case x => {
println("x is: " + x.get)
assert(x.get == List(1, 2, 3))
}
}
Await.ready(f, 5 seconds)
}
Это является частью набора тестов.
Проблема заключается в том, что, когда мой код не дает правильного результата, тест по-прежнему передается, и сообщение об ошибке появляется на выходе следующего модульного теста в наборе тестов.
Я думаю, что это потому, что после завершения f
функция теста возвращается, и только после этого выполняется код из блока onComplete
.
Я бы хотел, чтобы тестовая функция возвращалась только после выполнения кода от onComplete
.
Как это сделать?