我正在建立一个演员层次结构,其中一些演员回复他们直接发送给知名演员(固定名称)的消息。即这些演员(在层次结构中很远)通过获得一个actorRef context.actorFor("akka://...")
。
例如,我有一个“编排”演员:
system.actorOf(Props[OrchestratingActor], name = "orchestrator")
然后将有一个地址akka://application/user/orchestrator
在其他地方,一个随机的工作人员收到一条消息并想与协调器交谈:
class RandomWorker extends Actor {
def theOrchestrator = context.actorFor("akka://application/user/orchestrator")
def receive = {
case Foo =>
theOrchestrator ! "Bar"
}
}
现在,我想测试这些参与者,并且想知道如何处理这些地址:当对参与者进行单元测试(例如使用 TestActorRef)时,我该如何检查发送到远程地址的内容?一种想法是(在可能的情况下)通过构造函数向知名参与者提供地址,并传入 TestActor 的地址以查看正在接收的内容。但是我想知道是否没有办法在测试中“冒充”给定地址,尤其是。在地址不简单的情况下。
换句话说,我想测试演员的行为(它确实会"Bar"
在收到一个Foo