java - Akka FSM : How to write test case to verify state change?

标签 java akka akka-fsm

我正在使用 Akka FSM。我已经使用 AbstractFSMWithStash 实现了状态更改。但我不确定如何编写单元测试用例来验证参与者是否更改了其状态。 Akka 是否提供任何方法来访问 Actor 的状态以进行单元测试?

我在 https://doc.akka.io/docs/akka/current/fsm.html 的文档页面上找不到太多内容。 .

最佳答案

使用 scala,我们可以使用 TestFSMRef 创建我们想要测试的 FSM actor,然后使用 stateName。示例:

lazy val saleSystemProxy = TestFSMRef(new SaleSystemProxy, "sales-system-fsm")

"Sale System Proxy" should "start in WAITING state" in {
    saleSystemProxy.stateName shouldBe  ActorState.WAITING
}

it should "stay WAITING if any event passed before configuration" in {
    saleSystemProxy ! contract
    saleSystemProxy.stateName shouldBe ActorState.WAITING
}

关于java - Akka FSM : How to write test case to verify state change?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063320/

相关文章:

java - ObjectInputStream.read() 返回 -1,但 readObject 返回对象

java - 将 Akka 代理与更改相同数据的遗留代码混合

scala - 案例类和案例对象之间的区别?

java - 漏洞?无法加载配置中指定的记录器[akka.testkit.TestEventListener]?

java - 更新有限状态机中的数据

java - Android - Node.getNodeValue() 在存在 ' 时被截断

Java:如何在sql查询中使用多个参数在jdbc中执行preparedStatement?

java - 导入数据时在哪里存储文本文件?