加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读