akka-testkit の質問です。
メッセージ x を受信したときに、アクター「A」が y と z の 2 つのメッセージで応答したことを検証する方法について、アドバイスをいただけないでしょうか。
メッセージ x、y、z はすべて異なるタイプです。
このようなテストをサポートする適切な 'expect*' 関数が見つかりません。
ps Scala でのコード例をお願いします。ありがとう。
akka-testkit の質問です。
メッセージ x を受信したときに、アクター「A」が y と z の 2 つのメッセージで応答したことを検証する方法について、アドバイスをいただけないでしょうか。
メッセージ x、y、z はすべて異なるタイプです。
このようなテストをサポートする適切な 'expect*' 関数が見つかりません。
ps Scala でのコード例をお願いします。ありがとう。
実際に使用できます
expectMsgAllClassOf[T](d: Duration, c: Class[_ <: T]*): Seq[T]
。
完全な例:
case class X(i:Int)
case class Y(i:Int)
case class Z(i:Int)
class UnderTest extends Actor {
def receive {
case x:X =>
sender ! Y(1)
sender ! Z(1)
}
}
class MyTest extends AkkaTestKit with ImplicitSender {
val beingTested = system.actorOf(Props[UnderTest])
beingTested ! X(1)
val receivedMsgs = expectedMsgAllClassOf(classOf[Y],classOf[Z])
// Your received messages are in the receivedMsgs sequence first is Y //second is Z
//you can extract them and validating the exact result with assertions
}