我是Akka和演员模特的新手,在尝试测试一个演员时我正在努力。
从Akka documentation你可以创建一个简单的actor,它将自己绑定到本地端口并使用以下代码监听传入的连接:
class Server extends Actor {
import Tcp._
import context.system
IO(Tcp) ! Bind(self, new InetSocketAddress("localhost", 12345))
def receive = {
case b @ Bound(localAddress) =>
// do some logging or setup ...
// rest omitted for brevity
}
}
我想编写一个创建Server
actor的测试,然后验证该actor是否已收到来自Bound
的{{1}}消息。我想这是可能的,但我想我错过了一些东西。我对IO(Tcp)
的理解是,这适用于向正在测试的演员发送消息的演员,接收回来的东西并断言它收到的东西。我真的可以查看我创建的演员收到了什么吗?
答案 0 :(得分:0)
此测试将测试Akka IO是否正常工作/您是否正确使用API并且可以从等式中移除您的actor,而是使用TestProbe。
将建立/注册逻辑与构建actor实例分开可能是一个好主意。这样你就可以测试: