Регистрация полученного сообщения с помощью 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, в частности в подразделе "Вызовы актеров трассировки".

Другие вопросы по тегам