使用Akka Test Kit从ActorRef获取基础Actor

时间:2016-11-18 12:28:18

标签: scala testing akka actor

有没有办法使用Akka Actor Test Kit从ActorRef获取基础Actor?

我知道TestActorRef,但我不能在我的测试中使用它们,因为Actors在我的应用程序中被深度实例化。我所能得到的只是他们的参考。使用消息传递测试所有内容将是一件痛苦的事。

谢谢!

1 个答案:

答案 0 :(得分:1)

你在尝试的是Akka中非常糟糕的反模式。 Actors及其交互的全部目的是隔离 - 将Actor实例与外部隐藏起来。

如果您要检查Actor实例,那么您将继续遇到竞争条件,因为这样的访问不会受到" as-if"的Actor保证的保护。单threadedness。

我强烈建议您以这样一种方式构建和编写演员,以便您能够测试他们建模的交互,而不必直接检查他们的内部状态。例如,你可以有方法要求演员给出它的内部状态等。点是,然后它是故意制作的,你暴露的状态可能与那个&#39不同。 ; s实际上保​​存在实例中(更容易进化并更改内部表示)。

相关问题