gpt4 book ai didi

unit-testing - 测试传出 Akka Actor 消息

转载 作者:行者123 更新时间:2023-12-04 05:21:17 25 4
gpt4 key购买 nike

假设我有一个这样的 Actor (使用 Akka 2.1 和 Scala 2.10):

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() 左右,因为它将被发送给不同的 Actor 。处理这种情况的最佳做法是什么?我只是想确保消息被发送,但我不知道如何做到这一点。

谢谢,
迈克尔

最佳答案

将依赖项作为构造函数参数传入:

普通代码:

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

关于unit-testing - 测试传出 Akka Actor 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14341449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com