我正在使用Akka FSM。我已经使用AbstractFSMWithStash
实现了状态更改。但是我不确定如何编写单元测试用例以验证参与者是否更改了其状态。 Akka是否提供任何方法来访问参与者的状态以进行单元测试?
我在https://doc.akka.io/docs/akka/current/fsm.html的文档页面上找不到很多东西。
答案 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
}