Unit testing 如何在一次播放中执行多个请求2规格2单元测试
我有一个使用Play2框架的简单web应用程序。它有两个REST API: /写 /阅读 我想为它实现一个功能测试。我希望测试多次调用/write,然后验证/read的结果 但是route函数返回一个未来,我无法找到让specs2等待我的未来的方法 我的代码如下所示: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
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
}