【发布时间】:2014-11-03 20:03:07
【问题描述】:
我是在 akka 系统上使用 scala 的新手。
我有一个父actor(名为“manager”),它向一个孩子发送消息,并收到一个答案,然后转发给下一个孩子。 最终actor保存整个过程的结果。
我想创建一个端到端的测试,它向父级(“经理”)发送一条消息,并期待来自最后一个接收结果的参与者的消息。 我正在寻找一种简单的方法来指导最终参与者将消息发送回测试。由于测试不是发送者,也不是简单的参与者,所以我不知道如何正确引导消息。
以下是测试代码:
class EndToEndTest extends TestKit(ActorSystem("MyActorSystem"))
with FunSuiteLike with Matchers with BeforeAndAfterAll with ImplicitSender {
override def afterAll {
TestKit.shutdownActorSystem(system)
}
test("should send result") {
val actor = system.actorOf(Props(new Manager(name = "ActorManager")))
actor ! tPoint(1000L)
actor ! tPoint(2000L)
expectMsg(ActorResult(1))
}
}
最后一个儿童演员:
class SensorHealthReportMySqlActor extends Actor with ActorLogging {
def receive = {
case Result(result: Long) =>
//this is where i would like to send the test a message with Result(result)
case _ =>
log.error("Unknown message type")
}
}
任何帮助将不胜感激。
【问题讨论】:
标签: scala unit-testing akka