Compatible with scala-test 3.0.x
; Scala 2.11
and 2.12
.
libraryDependencies += "com.spingo" %% "scoped-fixtures" % "2.0.0"
For stateful values that re-initialize on each run.
ScopedFixtures
provides 3 different kinds of fixtures:
LazyFixture
EagerFixture
ScopedFixture
This value gets instantiated on the first access for each test.
Example:
val lazyValue = LazyFixture {
new MutableThing
}
Like LazyFixture
, but is instantiated for each test whether it's accessed or not.
Helpful for providing values that have needs setup and tear-down:
val actorSystemFixture = ScopedFixture[ActorSystem] { provide =>
val actorSystem = ActorSystem("test")
val status = provide(actorSystem)
actorSystem.shutdown
status
}
The value assigned to val is a container; in order to get the actual value, you must call apply(). IE:
val actorSystemFixture = ScopedFixture[ActorSystem] { provide =>
val actorSystem = ActorSystem("test")
val status = provide(actorSystem)
actorSystem.shutdown
status
}
implicit def actorSystem = actorSystemFixture()