Scala 无定时器测试演员

Scala 无定时器测试演员,scala,akka,Scala,Akka,首先,我是Akka的初学者。我有一个演员(在Scala中),在收到消息后: 可能不会发送任何东西 可能会发送消息 可以发送多条消息 我想测试它,不需要定时器 据我所知,我可以使用TestActorRef的?功能,然后等待未来的。我不知道如果没有发送任何消息,这是否会超时(我怀疑会,因为它有一个隐式超时参数),但它不能等待多条消息 我也可以使用TestKit中的recieve功能,但是当它确保没有收到消息时,该功能将超时,这将使我的测试速度变慢,鲁棒性降低 我需要的(或我认为我需要的)是能够发

首先,我是Akka的初学者。我有一个
演员
(在Scala中),在收到消息后:

  • 可能不会发送任何东西
  • 可能会发送消息
  • 可以发送多条消息
我想测试它,不需要定时器

据我所知,我可以使用
TestActorRef
功能,然后等待
未来的
。我不知道如果没有发送任何消息,这是否会超时(我怀疑会,因为它有一个隐式超时参数),但它不能等待多条消息

我也可以使用
TestKit
中的
recieve
功能,但是当它确保没有收到消息时,该功能将超时,这将使我的测试速度变慢,鲁棒性降低

我需要的(或我认为我需要的)是能够发送消息的东西,然后在
Actor
上运行receive,直到消息队列中有消息,然后检查它发送了什么

你能告诉我实现这一点的方法吗,或者指出我应该以不同的方式做什么吗?

你应该使用
那里的文档非常好。

AskPattern(?function)显示在那里,无法接收多条消息。还是我遗漏了什么?好吧,它可以处理多条消息。如果您使用ask查看示例,您将看到
future
立即返回,即行为是同步的且完全确定的。还请注意,不建议进行同步测试,计时器有什么问题?