0
을 완료 나는 다음과 같은 단위 테스트가 있습니다출력
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
코드가 실행 된 후에 만 테스트 기능을 반환하고 싶습니다.
어떻게하면됩니까?