1

specs2を使用してPlayフレームワークで複数のURLをテストする方法を理解しようとしていますが、複数のサーバーを起動せずにテストする適切な方法を理解できないようです。

import org.specs2.mutable._

import play.api.test._
import play.api.test.Helpers._
import play.api.libs.ws.WS

class testServer extends Specification {

  running(TestServer(9000)) {
    "Server starts" in {
      await(WS.url("http://localhost:9000").get).status must equalTo(OK)
    }
    "Who" in {
      await(WS.url("http://localhost:9000/url1").get).status must equalTo(OK)
    }
    "How" in {
      await(WS.url("http://localhost:9000/url2").get).status must equalTo(OK)
    }
    "Why" in {
      await(WS.url("http://localhost:9000/url3").get).status must equalTo(OK)
    }
    "Test4" in {
      await(WS.url("http://localhost:9000/url4").get).status must equalTo(OK)
    }
    "Test" in {
      await(WS.url("http://localhost:9000/url5").get).status must equalTo(OK)
    }
    "Help" in {
      await(WS.url("http://localhost:9000/url6").get).status must equalTo(OK)
    }
    "Bogus" in {
      await(WS.url("http://localhost:9000/url7").get).status must equalTo(OK)
    }
  }
}
4

1 に答える 1

2

この質問への回答を参照してください。例ごとに新しいコンテキストを作成する必要があります。たとえば、次のように書くことができます。

import org.specs2._
import execute._
import specification.AroundExample

class testServer extends Specification with AroundExample {
  def around[R <% Result](r: =>R) = 
    running(TestServer(9000))(r)

   "Server starts" in {
     await(WS.url("http://localhost:9000").get).status must equalTo(OK)
   }
   ...
}
于 2012-11-25T07:55:46.133 に答える