【发布时间】:2017-01-27 15:16:02
【问题描述】:
我正在尝试测试一个演员是否被终止,我知道有一种方法可以使用 TestProbe 的 expectTerminated 来测试它是否被终止
http://doc.akka.io/docs/akka/2.4.16/scala/testing.html#Watching_Other_Actors_from_Probes
但是有没有办法测试相反的情况?
谢谢:)
更新
在我的场景中,我有一个用户actor,它有一个或多个子actor,当它的所有子actor都断开连接(终止)时它会自行终止。
行为正常,但我的问题是我只能测试它没有孩子的场景并自行终止。我找不到正确的断言来检查如果它还有孩子,它是否没有终止。
这是一个简化的测试版本:
"Terminates itself if there are no connected clients" in {
val userActor = system.ActorOf(UserActor.props())
userActor ! UserActor.ClientDisconnected()
val deathWatch = TestProbe()
deathWatch.watch(userActor)
deathWatch.expectTerminated(userActor, timeoutDuration)
}
"Not Terminates itself when there are still other clients connected" in {
val userActor = system.ActorOf(UserActor.props())
// Connecting a client
userActor ! UserActor.ClientConnected(sessionId, accessToken)
userActor ! UserActor.ClientDisconnected()
// How can I test that userActor is not terminated?
}
【问题讨论】:
标签: akka