Акка ФСМ: Как написать контрольный пример для проверки изменения состояния? - PullRequest
0 голосов
/ 23 сентября 2019

Я работаю с Akka FSM.Я реализовал изменение состояния с помощью AbstractFSMWithStash.Но я не уверен, как написать пример модульного теста, чтобы убедиться, что актер меняет свое состояние.Предоставляет ли Akka какие-либо методы для доступа к состоянию субъекта для модульного тестирования?

Я не смог найти много на странице документации в https://doc.akka.io/docs/akka/current/fsm.html.

1 Ответ

0 голосов
/ 23 сентября 2019

С помощью scala мы можем использовать TestFSMRef для создания актера FSM, которого мы собираемся протестировать, а затем использовать 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
}
...