У меня есть тест на актера "Akka Classic", который тестирует персистентность.
Логика проста:
- Создать актера и отправить кучу событий.
- Остановите актера с помощью akka.actor.Kill или akka.actor.PoisonKill в зависимости от теста.
- Снова запустите актера и проверьте правильность его восстановления.
Я перевожу его на AKKA 2.6 и «AKKA Typed», но Kill и PoisonKill недоступны.
Из документации:
PoisonPill не поддерживаетсяв печатном виде. Вместо этого, если вам нужно попросить актера остановиться, вы должны определить сообщение, которое он понимает, и позволить ему возвращать Behaviors.stopped при получении этого сообщения.
Но PoisonPill поведение легко воспроизвести с помощью утилиты TestKit.stop.
Но как насчет Kill ? Он генерирует исключение ActorKilledException, которое будет управляться супервизором. Как это сделать в Akka Typed?
Итак, вопрос: Как реализовать этот тест с помощью "AKKA Typed"?