Unit testing 如何在一次播放中执行多个请求2规格2单元测试

Unit testing 如何在一次播放中执行多个请求2规格2单元测试,unit-testing,playframework-2.0,specs2,Unit Testing,Playframework 2.0,Specs2,我有一个使用Play2框架的简单web应用程序。它有两个REST API: /写 /阅读 我想为它实现一个功能测试。我希望测试多次调用/write,然后验证/read的结果 但是route函数返回一个未来,我无法找到让specs2等待我的未来的方法 我的代码如下所示: object MySpec extends Specification { "/write * 2, then /read" in new WithApplication { val write1 = route(a

我有一个使用Play2框架的简单web应用程序。它有两个REST API:

/写 /阅读 我想为它实现一个功能测试。我希望测试多次调用/write,然后验证/read的结果

但是route函数返回一个未来,我无法找到让specs2等待我的未来的方法

我的代码如下所示:

object MySpec extends Specification {

  "/write * 2, then /read" in new WithApplication {
    val write1 = route(app, FakeRequest(GET, '/write')).get
    val write2 = route(app, FakeRequest(GET, '/write')).get
    val read = route(app, FakeRequest(GET, '/read')).get

    // how to chain the requests so the execute one after another, and the specs2 can wait for it?

    status(read) must_==OK
  }
}

你不能这样做吗

import play.api.mvc._
import play.api.test._
import scala.concurrent.Future

object MySpec extends Specification {

"/write * 2, then /read" in new WithApplication {
   val result = for{
     _ <- route(app, FakeRequest(GET, '/write'))
     _ <- route(app, FakeRequest(GET, '/write'))
     read <- route(app, FakeRequest(GET, '/read'))
   }yield{ read }

   status(result) mustEqual OK
}