我已将功能delay
添加到Future
,这会使Future
等待指定的时间。
我添加了以下单元测试,它会检查它是否提前完成:
test("Wait - not too short") {
def f: Future[Unit] = Future.delay(3 seconds)
assert(Await.result(f, 1 seconds) == None)
}
问题是,当我运行测试时,我收到此错误:
org.scalatest.exceptions.TestFailedException: <(), the Unit value> did not equal None
这可能是因为如果未来未完成,Await.result
不会返回None
。
那么当未来等待还没有结束时它又会回归什么?
我应该检查什么价值?
答案 0 :(得分:1)
这是来自记忆(目前在手机上)。但是如果你没有为Future提供足够的时间,它将通过TimeOutException(可能是FututeTimedOutException)。所以我希望你的想法不是这样的。
我的期望是未来的延迟并不完全符合您的预期。试试这个:
Future(Thread.sleep(3000))