簡體   English   中英

如何模擬一個Akka演員單元測試一個類?

[英]How to mock an Akka Actor to Unit Test a class?

我有一個Controller類,它控制發送給Akka actor的請求,該請求被注入控制器。

控制器代碼:

class Controller(actor: ActorRef) {
  def control(msg: String): Future[String] = {
    actor.ask(msg)(Timeout(2 seconds)).mapTo[String]
  }
}

我的演員代碼是:

class ActorA extends Actor {
  override def receive: Receive = {
    case msg: String => sender ! msg
    case msg: Int => sender ! msg.toString
    case _ => "Invalid command!"
}

現在我需要將ActorA的行為模擬為單元測試Controller。 有沒有辦法通過Akka TestKit這樣做?

使用TestProbe 測試文檔

val probe = TestProbe()
val future = probe.ref ? "hello"
probe.expectMsg(0 millis, "hello") 
probe.reply("world")
assert(future.isCompleted && future.value == Some(Success("world")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM