Ich bin ziemlich neu in Scala, also bitte sei sanft.Akka Schauspieler Einheit testen mit Scala
In der App, die ich gerade baue, benutze ich Akka-Darsteller und ich möchte einige Komponententests schreiben. Ich bin auf diese official documentation for writing unit tests for Akka actors
gestoßen, aber ich konnte nicht genau verstehen, wie es funktionieren sollte. Insbesondere
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)
Wenn ich versuche, dass ich not found: value Success
bekommen, was nicht verwunderlich ist.
Ich fand dann this example of how to test Scala actors
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)
, die zwar vielleicht alt, aber es ist leicht zu verstehen und näher zu dem, was ich normalerweise verwenden, wenn ich Futures verwenden möchten, und vor allem funktioniert. Es erfordert, dass ich ein paar implitits wie das ActorSystem, Timeout und dergleichen deklariere, was mit dem offiziellen Weg nicht der Fall zu sein scheint ...
Wenn möglich, würde ich gerne die von die offizielle Dokumentation, also würde ich es begrüßen, wenn mir jemand helfen könnte zu verstehen, wie es funktioniert (insbesondere das Success-Bit) und wie man es benutzt.
haben Sie importieren wie 'scala.util._' oder' scala.util.Success '? – 4lex1v