测试按需创建的akka​​ actor

时间:2018-05-27 21:32:42

标签: scala akka

让我们说我在使用Akka在Scala中抓取应用程序的概念中有一个以下的演员结构。

ActorSystem - >主管> WebSupervisor - >刮板 - > ...

我想测试Supervisor和WebSupervisor之间的流程。

Supervisor正在向WebSupervisor发送Scrap消息,然后抓取该页面并将其发送回Supervisor。但我只对Supervisor和WebSupervisor之间的流程感兴趣。

请从主管演员处查看以下方法。

def scrap(url: URL) = {
    val host = url.getHost

    log.info("Checking host...")
    if (!host.isEmpty) {
      val actor = hostPerActor.getOrElse(host, {
        log.info("Creating new WebSupervisor actor...")
        val newActor = actorSystem.actorOf(WebSupervisor.props(self), "web-supervisor")
        log.info("Created new WebSupervisor actor.")
        hostPerActor += (host -> newActor)
        newActor
      })

      log.info("Sending Scrap request to the WebSupervisor actor.")
      actor ! Scrap(url)
    }
}

正如您所见,WebSupervisor的演员是动态创建的。所以我的问题是测试这种情况的方法是什么?我应该只测试整个流程还是有任何方法只测试Supervisor(类似于WebSupervisor的模拟?)是否有最佳实践?

0 个答案:

没有答案