簡體   English   中英

使用Akka Actor的單元測試組件

[英]Unit Testing Components that Uses an Akka Actor

首先,我沒有問如何對Akka Actor進行單元測試。 我知道這樣做的技巧。 我的問題略有不同。

我正在開發一個Scala程序,我們稱其為client ,它不使用Akka Actors。 但是,該程序使用一個庫,我們稱它為server ,其接口是使用Akka Actor實現的。

然后,通過詢問模式clientserver交互。

// This is the client program
class Client(uri: String) {
  implicit val context: ActorSystem = ActorSystem("client-actor-system")
  private val mainActor = context.actorSelection(uri)

  def connect: Future[SomeClass] = {
    implicit val timeout: Timeout = Timeout(5 seconds)
    (mainActor ? Connect()).mapTo[CreationResponse]
  }
}

現在,我想為Client類寫下一些單元測試。 單元測試意味着單獨測試一個類。 每個外部依賴都應該被嘲笑。

如何在Client類中模擬對mainActor的引用? 如何在actor系統中為mainActor注入模擬actor?

提前致謝。

我將mainActor actor選擇注入客戶端,並使用Akka TestKits創建它。

當然,您需要一個ActorSelection ,而不是ActorRef 可以在這里找到一些解決方案:

為ActorPath提供testProbe

或者,您可以通過向ActorRef發送一個Identify消息使mainActor成為ActorSelection

暫無
暫無

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

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