unit-testing – 测试传出的Akka Actor消息
发布时间:2020-12-16 08:47:32 所属栏目:安全 来源:网络整理
导读:假设我有一个这样的演员(使用带有 Scala 2.10的Akka 2.1): class ClientActor extends Actor with ActorLogging { val configurationManager = context.actorOf(Props[ConfigurationManager],"ConfigurationManager") def disconnected: Receive = { case m
假设我有一个这样的演员(使用带有
Scala 2.10的Akka 2.1):
class ClientActor extends Actor with ActorLogging { val configurationManager = context.actorOf(Props[ConfigurationManager],"ConfigurationManager") def disconnected: Receive = { case msg: Connect => configurationManager ! msg context.become(connecting) } .. def recieve = disconnected } 因此,现在当客户端收到Connect消息时,它会将其发送到ConfigurationManager并进入另一个状态.那很好,但现在我想测试一下. val clientRef = TestActorRef(new ClientActor). clientRef ! new Connect // ?? 我不能指望Msg()在这里,因为它将被发送到另一个演员.处理这种情况的最佳做法是什么?我只是想确保消息被发送,但我不知道如何做到这一点. 谢谢, 解决方法
将依赖项作为构造函数参数传递:
普通代码: val configActor = system.actorOf(Props[ConfigurationManager],"configManager") val clientActor = system.actorOf(Props(new ClientActor(configActor)),"clientActor") 测试代码: val clientActor = system.actorOf(Props(new ClientActor(testActor)),"clientActor") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |