【问题标题】:How do I fix this Akka unit test?如何修复这个 Akka 单元测试?
【发布时间】:2020-05-20 01:34:06
【问题描述】:

我从 Python 来到 Scala,并试图通过修改文档中的示例来理解 test framework integration。我已经粘贴了我的 main.scala 文件和 maintests.scala 文件。演员使用类型化的消息。它接受一个 MoveRequest 并用一个 MoveAction 回复。 IntelliJ 抱怨存在类型不匹配,并且 probe.expectMessage(character.MoveAction("north")) 应该更改为 MoveRequest,我不明白,因为这是应该探测的,而不是预期的。编译器抱怨类型不匹配。我究竟做错了什么?有没有更好的测试方法?

【问题讨论】:

    标签: scala akka tdd scalatest


    【解决方案1】:

    TestProbe 需要输入您要发送的消息类型。

    final case class MoveRequest(message: String,  response: ActorRef[MoveAction])
    

    这里响应参与者收到的消息类型是 MoveAction,因此在您的测试示例中,您需要一个 MoveAction 类型的 TestProbe 来测试发送给它的消息。

      val probe = testKit.createTestProbe[MoveAction]()
    

    由于测试探针不是针对被测参与者,而是针对 MoveRequest 消息中的参与者。

    【讨论】:

    • 谢谢。我会在今天晚些时候尝试修复,如果可行,我会接受您的回答!
    • 谢谢!我需要将行更改为: val probe = testKit.createTestProbe[character.MoveAction]()
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 2021-12-29
    • 2018-04-02
    • 2020-10-04
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多