检查Await.result是否没有返回任何内容

时间:2016-06-25 11:54:54

标签: scala

我已将功能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

那么当未来等待还没有结束时它又会回归什么?

我应该检查什么价值?

1 个答案:

答案 0 :(得分:1)

这是来自记忆(目前在手机上)。但是如果你没有为Future提供足够的时间,它将通过TimeOutException(可能是FututeTimedOutException)。所以我希望你的想法不是这样的。

我的期望是未来的延迟并不完全符合您的预期。试试这个:

Future(Thread.sleep(3000))