trait BaseOneServerPerTest extends TestSuiteMixin with ServerProvider
Trait that provides a new Application
and running TestServer
instance for each test executed in a ScalaTest Suite
.
This TestSuiteMixin
trait overrides ScalaTest's withFixture
method to create a new Application
and TestServer
before each test, and ensure they are cleaned up after the test has completed. The Application
is available (implicitly) from
method app
. The TestServer
's port number is available as port
(and implicitly available as portNumber
, wrapped
in a PortNumber).
By default, this trait creates a new Application
for each test using default parameter values, which
is returned by the newAppForTest
method defined in this trait. If your tests need an Application
with non-default
parameters, override newAppForTest
to return it.
Here's an example that demonstrates some of the services provided by this trait:
package org.scalatestplus.play.examples.oneserverpertest import org.scalatest._ import org.scalatestplus.play._ import play.api.{Play, Application} import play.api.inject.guice._ import play.api.routing._ class ExampleSpec extends PlaySpec with OneServerPerTest { // Override newAppForTest or use GuiceOneServerPerTest implicit override def newAppForTest(testData: TestData): Application = new GuiceApplicationBuilder() .configure(Map("ehcacheplugin" -> "disabled")) .router(TestRoutes.router) .build() "The OneServerPerTest trait" must { "provide a FakeApplication" in { app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled") } "make the FakeApplication available implicitly" in { def getConfig(key: String)(implicit app: Application) = app.configuration.getOptional[String](key) getConfig("ehcacheplugin") mustBe Some("disabled") } "provide an http endpoint" in { runningServer.endpoints.httpEndpoint must not be empty } "provide an actual running server" in { import Helpers._ import java.net._ val url = new URL("http://localhost:" + port + "/boum") val con = url.openConnection().asInstanceOf[HttpURLConnection] try con.getResponseCode mustBe 404 finally con.disconnect() } } }
- Self Type
- BaseOneServerPerTest with TestSuite with FakeApplicationFactory
- Source
- BaseOneServerPerTest.scala
- Alphabetic
- By Inheritance
- BaseOneServerPerTest
- ServerProvider
- TestSuiteMixin
- SuiteMixin
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def expectedTestCount(filter: Filter): Int
- Definition Classes
- SuiteMixin
- abstract def nestedSuites: IndexedSeq[Suite]
- Definition Classes
- SuiteMixin
- abstract def rerunner: Option[String]
- Definition Classes
- SuiteMixin
- abstract def run(testName: Option[String], args: Args): Status
- Definition Classes
- SuiteMixin
- abstract def runNestedSuites(args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTest(testName: String, args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTests(testName: Option[String], args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract val styleName: String
- Definition Classes
- SuiteMixin
- abstract def suiteId: String
- Definition Classes
- SuiteMixin
- abstract def suiteName: String
- Definition Classes
- SuiteMixin
- abstract def tags: Map[String, Set[String]]
- Definition Classes
- SuiteMixin
- abstract def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
- Definition Classes
- SuiteMixin
- abstract def testNames: Set[String]
- Definition Classes
- SuiteMixin
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- implicit final def app: Application
Implicit method that returns the
Application
instance for the current test.Implicit method that returns the
Application
instance for the current test.- Definition Classes
- BaseOneServerPerTest → ServerProvider
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newAppForTest(testData: TestData): Application
Creates new instance of
Application
with parameters set to their defaults.Creates new instance of
Application
with parameters set to their defaults. Override this method if you need anApplication
created with non-default parameter values. - def newServerForTest(app: Application, testData: TestData): RunningServer
- Attributes
- protected
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def port: Int
The port used by the
TestServer
.The port used by the
TestServer
.- Definition Classes
- ServerProvider
- implicit def portNumber: PortNumber
Implicit
PortNumber
instance that wrapsport
.Implicit
PortNumber
instance that wrapsport
. The value returned fromportNumber.value
will be same as the value ofport
.- returns
the configured port number, wrapped in a
PortNumber
- Definition Classes
- ServerProvider
- implicit final def runningServer: RunningServer
- Definition Classes
- BaseOneServerPerTest → ServerProvider
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withFixture(test: (BaseOneServerPerTest.this)#NoArgTest): Outcome
Creates new
Application
and runningTestServer
instances before executing each test, and ensures they are cleaned up after the test completes.Creates new
Application
and runningTestServer
instances before executing each test, and ensures they are cleaned up after the test completes. You can access theApplication
from your tests asapp
and theTestServer
's port number asport
.- test
the no-arg test function to run with a fixture
- returns
the
Outcome
of the test execution
- Definition Classes
- BaseOneServerPerTest → TestSuiteMixin