2015-06-16 3 views
1

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

http://doc.akka.io/docs/akka/snapshot/scala/testing.html

Я понимаю, как использовать, TestActorRef тестового набора, TestProbe и т.д. Я также понимаю, что моя логика домена ядро ​​должно быть извлечено и тестировали в изоляции от Акки.

Мой вопрос касается стратегий для выполнения TDD на аккордерах Акки, то есть PersistentActor и PersistentView.

Я хочу, чтобы иметь возможность проверить следующие типы сценариев в достаточно низких накладных расходов, эффективным образом т.е. как можно ближе к испытанию устройства, как это возможно:

  1. ли упорная актер упорствовать событие с правильным Я бы?
  2. Восстановлено ли восстановление моментального снимка надлежащим образом?
  3. Имеет ли мое мнение правильное событие?

Если кто-нибудь знает о проекте, который может помочь мне увидеть это в действии, я был бы признателен.

Один из подходов, о котором я могу думать, - это испытание PersistentView, которое может быть использовано для проверки того, что PersitentActor выполнил свою работу. Кажется немного запутанным, хотя.

Речь идет не о проверке основы сохранения Akka, а в том, чтобы проверить, что мои Актеры были настроены правильно, чтобы использовать его, и поведение такое, как ожидалось.

+0

Для проверки того, сохранилось ли событие, я использовал журнал in-memory и проверку persistentview для проверки того, что событие было сохранено. Для тестирования восстановления моментального снимка я просто уничтожил актера после отправки команды, а затем перезапустил - тогда было восстановлено состояние состояния. Использовал тест-тест akka для тестовой среды. –

ответ

0

Ad.1 Многоразовое решение для этого было бы своего рода журналом в памяти с функцией публикации автобусов событий. Таким образом, вы можете создать тестовый зонд для прослушивания на шине событий для опубликованных событий и их утверждения.

Ad.2 и Ad.3 больше о , если мой актер реагирует правильно после восстановления, у меня есть основания полагать, что он находится в правильном состоянии. Таким образом, вы можете не только проверить, правильно ли установлены внутренние поля, но и если метод приема был восстановлен правильно из-за изменений become.

При необходимости для проверки состояния явно есть некоторый тип сообщения, возвращающий состояние актера обратно отправителю. Его можно сделать общим, используя черты и переопределения методов приема.

Смежные вопросы