Sono abbastanza nuovo per Scala quindi per favore sii gentile.Test di unità di attori Akka con Scala
Nell'app che sto attualmente costruendo, sto usando gli attori Akka e voglio scrivere alcuni test unitari. Mi sono imbattuto in questo official documentation for writing unit tests for Akka actors
ma non riuscivo a capire esattamente come dovrebbe funzionare. In particolare,
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)
Quando provo che, ottengo not found: value Success
, che non è sorprendente.
Poi ho trovato 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)
, che è certamente forse vecchio, ma è facile da capire e più vicino a quello che io normalmente uso quando voglio usare Futures, e soprattutto funziona. Mi richiede di dichiarare alcuni impliciti come ActorSystem, timeout e così via, che non sembra essere il caso ufficiale ...
Se possibile, mi piacerebbe usare il metodo proposto da la documentazione ufficiale, quindi sarei grato se qualcuno potesse aiutarmi a capire come funziona (in particolare il bit Success) e come usarlo.
avete importazione come '' scala.util._' o scala.util.Success '? – 4lex1v