unit-testing - 如何同步对 akka Actor 进行单元测试?

标签 unit-testing scala akka actor

我有一个 Actor ,他会在收到一定数量的消息后写一个文件。

编译时,Maven 会运行我们定义的所有单元测试。问题是检查文件是否成功写入磁盘的单元测试发生在 Actor 写入文件之前(它正确执行)。

我找到了一些用于测试 Actor 的文档,但它们都已经过时了好几年。在检查文件是否存在之前,我如何等待一段时间?

最佳答案

总结一下所有的意见和建议:

  • 将非 Actor 特定的代码重构为常规类,并使用常规方法(单元测试等)对其进行测试。这更像是一种单元测试方法。
  • 使用 TestActorRef 测试单个actor - 您可以同步控制事件并丰富到actor 内部。使用提供更多包括“特殊” Actor 系统的 TestKit。这更像是一种行为测试方法。
  • 使用文档 here了解有关 Akka TestKit 如何工作的更多信息,但简而言之,您可以控制 actor 和同步执行。
  • 关于unit-testing - 如何同步对 akka Actor 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20909975/

    相关文章:

    java - 如何验证使用 "null"参数调用 spy

    scala - 值(value) !不是 akka.routing.Router 的成员

    unit-testing - mock 去。有简单的方法吗?

    python - assertRaises 失败,即使可调用引发所需的异常(python,unittest)

    scala - 理解中的Future [Option [Boolean]]。简单吧?

    scala - Playframework scala,如何在没有 Async 的情况下将 Web 服务调用异步转换为响应

    java - SWT 文本小部件不显示

    scala - 处理 apache-camel 中的连接失败

    scala - 使用 Akka actors 进行异常处理

    Django testing client.login() : Your database backend doesn't behave properly when autocommit is off. 使用前开启 'atomic'