Akka FSM:如何编写测试用例以验证状态更改?

时间:2019-09-23 13:14:55

标签: java akka akka-fsm

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

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

1 个答案:

答案 0 :(得分:0)

使用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
}