9

先物をテストする私の方法は、value1 を使用していました。play2.2に移行しました。慣れ親しんだテスト方法がなくなっていることがわかりました。@scala.deprecated("代わりに scala.concurrent.Promise を使用してください。", "2.2")

どんな助けでも大歓迎です。

オリバー

4

3 に答える 3

14

documentationで説明されているように、PlaySpecification トレイトを実装できます。このトレイトはメソッド await を提供します。デフォルトのタイムアウトをオーバーライドすることもできます。

import akka.util.Timeout
import scala.concurrent.duration._

class FooSpec extends PlaySpecification {
   override implicit def defaultAwaitTimeout: Timeout = 20.seconds

   "foo" should {
     "handle futures" {
        val result = await(Future(true))

        result should beTrue
     }
   }
}
于 2014-01-13T14:23:19.283 に答える
2

次のように、単一のテスト シナリオのデフォルトのタイムアウトをオーバーライドすることもできます。

import akka.util.Timeout
import scala.concurrent.duration._

class FooSpec {
   "foo" should {
     "handle futures" with DefaultAwaitTimeout {
        override implicit def defaultAwaitTimeout: Timeout = 20.seconds
        val result = await(Future(true))

        result should beTrue
     }
   }
}

コードを特定の位置で停止するには、次を使用します

 Thread.sleep(milliseconds)
于 2015-01-29T11:54:35.470 に答える