在Play Framework中使用Scala测试Akka Actor的典型示例
在Play Framework中创建了一个Akka actor后,我现在想测试它。 但是,我立即遇到了一个问题:
任何人都可以提供使用TestKit和Play的测试装置测试Akka actor的典型示例吗?
为了一致性,我宁愿使用Specs2(坦率地说,为单个应用程序需要两个不同的测试框架似乎很奇怪),但是如果它与Play测试装置很好地集成,我会接受一个ScalaTest示例。
没有什么特别的地方,你基本上只有测试,看起来像演员样本,但使用specs2测试语法。 如果你想使用akka测试工具,你必须在你的build.sbt中添加一个明确的依赖关系
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-testkit" % "2.2.0" % "test"
)
那么除此之外没有什么特别之处,除了你不能在测试类上继承TestKit,因为Specification也是一个类,并且有名称类。 这是一个如何使用自定义Scope来使用TestKit的例子:
import org.specs2.specification.Scope
class ActorSpec extends Specification {
class Actors extends TestKit(ActorSystem("test")) with Scope
"My actor" should {
"do something" in new Actors {
val actor = system.actorOf(Props[SomeActor])
val probe = TestProbe()
actor.tell("Ping", probe.ref)
probe.expectMsg("Pong")
}
"do something else" in new Actors { new WithApplication {
val actor = system.actorOf(Props[SomeActorThatDependsOnApplication])
val probe = TestProbe()
actor.tell("Ping", probe.ref)
probe.expectMsg("Pong")
}}
}
}
链接地址: http://www.djcxy.com/p/18735.html
上一篇: Canonical Example of how to test Akka Actor using Scala in Play Framework
下一篇: How to update the PNR Capcha added in the Indian Railways Site