Akka FSM: как написать тестовый пример для проверки изменения состояния?

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

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


person Karan Khanna    schedule 23.09.2019    source источник


Ответы (1)


В 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
}
person Karan Khanna    schedule 23.09.2019