2012-03-09 5 views
3

Я пишу модульные тесты для актеров Akka и хочу проверить записи в журнале; например test xyz написал в категорию ошибок. (Знаете, скажем, я посылаю актеру сообщение через!)akka - проверка конкретной записи в журнале

В роли актера я напишу для регистрации об ошибке или информации или отладки и т. Д. В зависимости от результата обработки сообщения «получать».

Для akka 1.2 или 1.3, как я должен это делать? Пример: добавить нового прослушивателя в EventHandler? Другие идеи?

Спасибо заранее, Тодда

ответ

3

Джон имеет основы, охватываемые в своем ответе уже (я бы трубу сообщений для testActor вместо использования TestLatch, но это дело вкуса). Я знаю, что это не соответствует вашим требованиям, но, может быть, следующее может заманить вас в Akka 2.0?

EventFilter.error(message = "some message", occurrences = 1) intercept { 
    // do something which should trigger such a log message 
} 

Эти объекты происходят из Акка-тестового набора, в частности akka.testkit.TestEventListener и akka.testkit.EventFilter. Код, показанный выше, будет ждать до трех секунд (настраивается в «akka.test.filter-leeway»), чтобы сообщение появилось и сообщило информационное сообщение об ошибке, если этого не произойдет.

+7

Что-то, что меня поймало. В Akka 2.1 вы включаете это с помощью конфигурации 'akka.event-handlers = [" akka.testkit.TestEventListener "]'. В 2.2 это изменилось на 'akka.loggers = [" akka.testkit.TestEventListener "]'. [Документы] (http://doc.akka.io/docs/akka/2.2-M3/scala/testing.html#Expecting_Log_Messages) – theon

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

  • Нет связанных вопросов^_^