私は、外部クライアントがアクセスしているかのように私のサービスをテストするための統合テストを作成したいプレイフレームワーク2.5統合テストは2.5
の上にRESTサービスを構築しています。ドキュメントhereを使用して
- 私はそう 'アプリ' を私のテストクラスでOneServerPerSuite混合し、オーバーライド:。
暗黙のオーバーライド怠惰ヴァル・アプリは=新しいGuiceApplicationBuilderを()(ビルド)
ルータの設定を無効にしたくないと思っています。
import org.scalatest.FreeSpec
import org.scalatestplus.play.OneServerPerSuite
import play.api.inject.guice.GuiceApplicationBuilder
import play.api.libs.ws.WSClient
import scala.concurrent.Await
import scala.concurrent.duration.Duration
class ServerIntegration extends FreeSpec with OneServerPerSuite {
implicit override lazy val app = new GuiceApplicationBuilder().build()
"Server" - {
"When requested for a reply" - {
"should give it" in {
val ws = app.injector.instanceOf[WSClient]
val resonseFuture = ws.url(s"http://localhost:$port/my/defined/route").get()
val result = Await.result(resonseFuture, Duration.Inf)
println(result)
}}} }
私はHTTPサーバーを起動できたようですが、私のルートは定義されていません。私は「アクションが見つかりませんでした」という返信をしています(ステータス404)。
通常のサーバー(「sbt run」)を実行すると、(ブラウザーを使用して)定義されたすべてのアクションにアクセスできます。