Skip to content

Async helpers for testing Play Framework with async test suites.

License

Notifications You must be signed in to change notification settings

rallyhealth/play-test-ops

Repository files navigation

Build Status

Introduction

Adds Play Framework test code helpers that augment the com.typesafe %% play-test library with the following features:

  • AsyncResultExtractors: Instead of blocking for a result, extract the content into Futures and let the testing framework handle it for you.

Published to Maven Central. Example dependency in sbt on the play28-specific artifact:

libraryDependencies += "com.rallyhealth" %% "play28-test-ops-core" % "version"

Scala Versions supported:

Artifact Scala 2.11 Scala 2.12 Scala 2.13 Scala 3
play25-test-ops-core
play26-test-ops-core
play27-test-ops-core
play28-test-ops-core
play29-test-ops-core
play30-test-ops-core

Usage

The following example uses the AsyncTestSuite in ScalaTest 3.x along with the play.api.test.EssentialActionCaller from the play-test project:

class MyTest extends AsyncWordSpec
  with AsyncResultExtractors
  with EssentialActionCaller {

  "my test should complete asynchronously" in {
    val ctrl = new MyTestController
    val testJson = Json.obj("expected" -> "json")
    val request = FakeRequest("POST", "/test/json").withJsonBody(testJson)
    for {
      result <- call(ctrl.testAction, request)
      resultBody <- contentAsJson(result)
    } yield {
      assertResult(testJson) {
        resultBody
      }
    }
  }
}

About

Async helpers for testing Play Framework with async test suites.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages