Согласование шаблонов при тестировании ожидаемого сообщения

Как проверить ожидаемое сообщение с помощью testkit akka, если я не знаю всех деталей сообщения? Могу ли я каким-то образом подчеркнуть "_"?

Пример: я могу проверить:

echoActor ! "hello world"
expectMsg("hello world")

Пример: я хочу протестировать

case class EchoWithRandom(msg: String, random: Int)

echoWithRandomActor ! "hi again"
expectMsg(EchoWithRandom("hi again", _))

Способ, которым я не хочу использовать:

echoWithRandomActor ! "hi again"
val msg = receiveOne(1.second)
msg match {
    case EchoWithRandom("hi again", _) => //ok
    case _ => fail("something wrong")
}

Ответы

Ответ 1

Не похоже, что вы можете многое сделать, потому что expectMsg использует == за кулисами.

Вы можете попробовать использовать expectMsgPF, где PF происходит от PartialFunction:

echoWithRandomActor ! "hi again"
expectMsgPF() {
  case EchoWithRandom("hi again", _) => ()
}