0

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

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

4

1 回答 1

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
}
于 2019-09-23T17:41:46.127 回答