fix specs2 samples so they system.shutdown

This commit is contained in:
Roland 2012-05-25 14:42:22 +02:00
parent dc17bba62f
commit 24f6406634
5 changed files with 22 additions and 15 deletions

View file

@ -163,7 +163,7 @@ Typed Actor Hierarchies
Since you can obtain a contextual Typed Actor Extension by passing in an ``ActorContext`` Since you can obtain a contextual Typed Actor Extension by passing in an ``ActorContext``
you can create child Typed Actors by invoking ``typedActorOf(..)`` on that. you can create child Typed Actors by invoking ``typedActorOf(..)`` on that.
.. includecode:: code/akka/docs/actor/TypedActorDocTestBase.java .. includecode:: code/docs/actor/TypedActorDocTestBase.java
:include: typed-actor-hierarchy :include: typed-actor-hierarchy
You can also create a child Typed Actor in regular Akka Actors by giving the ``UntypedActorContext`` You can also create a child Typed Actor in regular Akka Actors by giving the ``UntypedActorContext``

View file

@ -1,7 +1,7 @@
package docs.testkit package docs.testkit
import org.specs2._ import org.specs2.Specification
import org.specs2.specification.Scope import org.specs2.specification.{ Step, Scope }
import akka.actor.{ Props, ActorSystem, Actor } import akka.actor.{ Props, ActorSystem, Actor }
import akka.testkit.{ TestKit, ImplicitSender } import akka.testkit.{ TestKit, ImplicitSender }
@ -13,10 +13,12 @@ class Specs2DemoAcceptance extends Specification {
p ^ p ^
"A TestKit should" ^ "A TestKit should" ^
"work properly with Specs2 acceptance tests" ! e1 ^ "work properly with Specs2 acceptance tests" ! e1 ^
"correctly convert durations" ! e2 "correctly convert durations" ! e2 ^
Step(system.shutdown()) ^ end // do not forget to shutdown!
val system = ActorSystem() val system = ActorSystem()
// an alternative to mixing in NoTimeConversions
implicit def d2d(d: org.specs2.time.Duration): akka.util.FiniteDuration = implicit def d2d(d: org.specs2.time.Duration): akka.util.FiniteDuration =
akka.util.Duration(d.inMilliseconds, "millis") akka.util.Duration(d.inMilliseconds, "millis")

View file

@ -2,20 +2,19 @@ package docs.testkit
import org.specs2.mutable.Specification import org.specs2.mutable.Specification
import org.specs2.specification.Scope import org.specs2.specification.Scope
import org.specs2.time.NoTimeConversions
import akka.actor.{ Props, ActorSystem, Actor } import akka.actor.{ Props, ActorSystem, Actor }
import akka.testkit.{ TestKit, ImplicitSender } import akka.testkit.{ TestKit, ImplicitSender }
import akka.util.duration._
class Specs2DemoUnitSpec extends Specification { class Specs2DemoUnitSpec extends Specification with NoTimeConversions {
val system = ActorSystem() val system = ActorSystem()
implicit def d2d(d: org.specs2.time.Duration): akka.util.FiniteDuration =
akka.util.Duration(d.inMilliseconds, "millis")
/* /*
* this is needed if different test cases would clash when run concurrently, * this is needed if different test cases would clash when run concurrently,
* e.g. when creating specifically named top-level actors * e.g. when creating specifically named top-level actors; leave out otherwise
*/ */
sequential sequential
@ -31,4 +30,6 @@ class Specs2DemoUnitSpec extends Specification {
} }
} }
} }
step(system.shutdown) // do not forget to shutdown!
} }

View file

@ -684,11 +684,15 @@ Some `Specs2 <http://specs2.org>`_ users have contributed examples of how to wor
with :class:`org.specs2.specification.Scope`. with :class:`org.specs2.specification.Scope`.
* The Specification traits provide a :class:`Duration` DSL which uses partly * The Specification traits provide a :class:`Duration` DSL which uses partly
the same method names as :class:`akka.util.Duration`, resulting in ambiguous the same method names as :class:`akka.util.Duration`, resulting in ambiguous
implicits if ``akka.util.duration._`` is imported. The work-around is to use implicits if ``akka.util.duration._`` is imported. There are two work-arounds:
the Specification variants and supply an implicit conversion to the Akka
Duration. This conversion is not supplied with the Akka distribution because * either use the Specification variant of Duration and supply an implicit
that would mean that our JAR files would dependon Specs2, which is not conversion to the Akka Duration. This conversion is not supplied with the
justified by this little feature. Akka distribution because that would mean that our JAR files would dependon
Specs2, which is not justified by this little feature.
* or mix :class:`org.specs2.time.NoTimeConversions` into the Specification.
* Specifications are by default executed concurrently, which requires some care * Specifications are by default executed concurrently, which requires some care
when writing the tests or alternatively the ``sequential`` keyword. when writing the tests or alternatively the ``sequential`` keyword.

View file

@ -163,7 +163,7 @@ Typed Actor Hierarchies
Since you can obtain a contextual Typed Actor Extension by passing in an ``ActorContext`` Since you can obtain a contextual Typed Actor Extension by passing in an ``ActorContext``
you can create child Typed Actors by invoking ``typedActorOf(..)`` on that: you can create child Typed Actors by invoking ``typedActorOf(..)`` on that:
.. includecode:: code/akka/docs/actor/TypedActorDocSpec.scala .. includecode:: code/docs/actor/TypedActorDocSpec.scala
:include: typed-actor-hierarchy :include: typed-actor-hierarchy
You can also create a child Typed Actor in regular Akka Actors by giving the ``ActorContext`` You can also create a child Typed Actor in regular Akka Actors by giving the ``ActorContext``