Регистрация полученного сообщения с помощью akka testkit
Я пытаюсь написать несколько тестовых примеров для моих актеров, проблема в том, что некоторые тесты не проходят, и я не могу понять, почему они терпят неудачу.
В нормальном сценарии мой код работает нормально (без каких-либо тестов), но для своих тестов я высмеиваю некоторые части библиотеки twitter4j, что делает их несколько сложными.
Тесты не пройдены, и полезной информации об этом больше нет.
Есть ли способ зарегистрировать полученное сообщение с помощью akka testkit и scalatest?
1 ответ
Если вы хотите иметь возможность регистрировать все полученные сообщения, вы должны сделать три вещи:
1) Оберните receive
функция на актера, для которого вы хотите включить ведение журнала с LoggingReceive
(от akka.event
пакет).
2) Установите akka.actor.debug.receive
установка из конфига в true
3) Убедитесь, что ваш лог лог будет показывать сообщения на DEBUG
уровень
Так что ваш актер может выглядеть примерно так:
import akka.actor._
import akka.event.LoggingReceive
class MyActor extends Actor{
def receive = LoggingReceive{
case msg => ...
}
}
Если вы настроите все так, вы должны увидеть все входящие сообщения, записанные на DEBUG
уровень для вашего тестируемого актера. Подробнее об этом вы можете прочитать в разделе " Системы актеров тестирования " в Документах Akka, в частности в подразделе "Вызовы актеров трассировки".