AkkaTest 的 ExpectMsg 错误
ExpectMsg error with AkkaTest
我得到
类型不匹配:预期 ReaperSpec.this.Register,实际:String
其中 expectMsg(...)
是将 AkkaTest 与此处指定的 ScalaTest 一起使用时
(http://doc.akka.io/docs/akka/snapshot/scala/testing.html)
我错过了什么?
import akka.actor.{ActorSystem, Props}
import akka.testkit.{TestKit, TestProbe}
import system.Reaper.WatchMe
import org.scalatest.{BeforeAndAfterAll, MustMatchers, WordSpecLike}
class ReaperSpec(_system: ActorSystem) extends TestKit(_system)
with WordSpecLike with MustMatchers with BeforeAndAfterAll {
def this() = this(ActorSystem("Reaper"))
override protected def afterAll(): Unit = TestKit.shutdownActorSystem(system)
"A reaper" must {
"terminated when all child actors are stopped" in {
val probeA = TestProbe()
val probeB = TestProbe()
val reaper = system.actorOf(Props(classOf[Reaper]))
reaper ! WatchMe(probeA.ref)
reaper ! WatchMe(probeB.ref)
system.stop(probeA.ref)
system.stop(probeB.ref)
expectMsg("Dead")
}
}
}
好像我使用了错误的 Scala 测试版本。我使用的是 3.0.0-M9。将其更改为 2.2.5 有效。
我得到
类型不匹配:预期 ReaperSpec.this.Register,实际:String
其中 expectMsg(...)
是将 AkkaTest 与此处指定的 ScalaTest 一起使用时
(http://doc.akka.io/docs/akka/snapshot/scala/testing.html)
我错过了什么?
import akka.actor.{ActorSystem, Props}
import akka.testkit.{TestKit, TestProbe}
import system.Reaper.WatchMe
import org.scalatest.{BeforeAndAfterAll, MustMatchers, WordSpecLike}
class ReaperSpec(_system: ActorSystem) extends TestKit(_system)
with WordSpecLike with MustMatchers with BeforeAndAfterAll {
def this() = this(ActorSystem("Reaper"))
override protected def afterAll(): Unit = TestKit.shutdownActorSystem(system)
"A reaper" must {
"terminated when all child actors are stopped" in {
val probeA = TestProbe()
val probeB = TestProbe()
val reaper = system.actorOf(Props(classOf[Reaper]))
reaper ! WatchMe(probeA.ref)
reaper ! WatchMe(probeB.ref)
system.stop(probeA.ref)
system.stop(probeB.ref)
expectMsg("Dead")
}
}
}
好像我使用了错误的 Scala 测试版本。我使用的是 3.0.0-M9。将其更改为 2.2.5 有效。