私はScalaにかなり慣れていないので、優しくしてください。
私が現在構築しているアプリでは、Akka アクターを使用しており、いくつかの単体テストを作成したいと考えています。Akka アクターの単体テストを作成するためのこの公式ドキュメントに出会いました
しかし、それがどのように機能するかを正確に理解できませんでした。特に、
val actorRef = TestActorRef(new MyActor)
// hypothetical message stimulating a '42' answer
val future = actorRef ? Say42
val Success(result: Int) = future.value.get
result must be(42)
それを試してみると、not found: value Success
驚くべきことではありません。
次に、Scala アクターをテストする方法の例を見つけました
val actorRef = TestActorRef[TickTock]
implicit val timeout = Timeout(5 seconds)
val future = (actorRef ? new Tick("msg")).mapTo[String]
val result = Await.result(future, timeout.duration)
Assert.assertEquals("processed the tick message", result)
、確かに古いかもしれませんが、理解しやすく、Futures を使用したいときに通常使用するものに近く、最も重要なことは動作します。ActorSystem、タイムアウトなどのいくつかの暗黙を宣言する必要がありますが、公式の方法ではそうではないようです...
可能であれば、公式ドキュメントで提案されている方法を使用したいので、誰かがそれがどのように機能するか(特にSuccess bit)とその使用方法を理解するのを手伝ってくれるとありがたい.