2014-09-10 13 views
3

Как выполнить одно тестирование постоянных участников. Я понимаю, что есть akka-testkit, который можно использовать, чтобы получить базовый объект-актер ссылки тестового актера, как показано ниже.Тестирование на постоянной основе актеров в Akka

final TestActorRef<MyActor> ref = TestActorRef.create(system, props, "testA"); 
final MyActor actor = ref.underlyingActor(); 
assertTrue(actor.testMe()); 

Но это не работает для постоянных актеров, как упоминалось here.

Вопрос: как одна единица тестирует постоянные актер-методы?

ответ

1

Этот вопрос уже был отправлен в список рассылки in this thread. Я разберусь с ответом, данным там немного.

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

Что касается тестирования PersistentActors, то для проверки этого теста вы можете отслеживать прогресс here.

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