Search code examples
scalatestakka-testkit

ExpectMsg error with AkkaTest


I am getting

Type mismatch: expected ReaperSpec.this.Register, actual: String

where expectMsg(...) is when using AkkaTest with ScalaTest as specified here (http://doc.akka.io/docs/akka/snapshot/scala/testing.html)

What am I missing?

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")
    }
  }
}

Solution

  • Seems like I was using the wrong scala test version. I was using 3.0.0-M9. Changing it to 2.2.5 worked.