Согласование шаблонов при тестировании ожидаемого сообщения
Как проверить ожидаемое сообщение с помощью 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", _) => ()
}