Как исправить этот тестовый модуль Akka? - PullRequest
0 голосов
/ 04 февраля 2020

Я перехожу на Scala с Python и пытаюсь понять интеграцию тестовой структуры , изменив примеры в документации. Я вставил свой файл main. scala и файл maintests. scala file. Актер использует печатные сообщения. Он принимает MoveRequest и отвечает MoveAction. IntelliJ жалуется, что есть несоответствие типов и что probe.expectMessage(character.MoveAction("north")) должно быть заменено на MoveRequest, что я не понимаю, потому что это то, что следует проверять, а не ожидать. Компилятор жалуется на несоответствие типов. Что я делаю неправильно? Есть ли лучший подход к тестированию?

1 Ответ

0 голосов
/ 04 февраля 2020

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

final case class MoveRequest(message: String,  response: ActorRef[MoveAction])

Здесь тип сообщений, которые получает актер ответа, - MoveAction, поэтому в вашем тестовом примере вам нужен TestProbe типа MoveAction to test сообщения отправляются на него.

  val probe = testKit.createTestProbe[MoveAction]()

Поскольку тестовый зонд не для тестируемого актера, он для актера в сообщении MoveRequest.

...