使用ScalaTest與Await.result的ScalaFutures的優點

我最近與同事就ScalaTest中的 Scala

Futures與測試中的Await.result的使用或whenReady或.futureValue進行了討論.除了可讀性,使用whenReady時配置(超時)和結果範圍的一致性,使用ScalaFutures方法比Await.result還有其他明顯的優勢嗎?

我注意到ScalaFutures使用“輪詢”技術而不是像Await一樣阻止,但有人可以詳細說明優勢嗎?

ScalaFutures完成的輪詢是通過排程程序完成的(afaik);因此,它不會阻止任何執行緒.因此,您可能會有許多併發執行的測試,這些測試遠遠超過了測試實際執行的ExecutionContext上可用的執行緒.

翻譯自:https://stackoverflow.com/questions/27319697/advantages-of-using-scalafutures-from-scalatest-vs-await-result