what behavior are you trying to test with your unit test?

if you are testing the behavior of the process() method with some unexpected input (i.e. an exception of a specified type is thrown from within the method), then you could use TestActorRef and invoke the process() method directly, then await the future. something like:

valactorRef=TestActorRef[MyActor]
// ... initialize any internal actor state
valactor=actorRef.underlyingActor

val myBadInput = ...
a [Exception] should be thrownBy Await.result(actor.process(myBadInput), Timeout(5.seconds))

you might also consider extracting the process() method into a separate trait, and testing it in isolation from the actor. you could make the process() method synchronous in the trait to ease testing, then in your actor you can wrap the synchronous call in a future. i like doing it this way, it separates the computation part from the coordination part, and makes both pieces simpler to test.

-Michael

On 02/01/16 17:22, Paul Cleary wrote:
I have a child actor that I am trying to test using akka test kit.

Pretty simple really:

|
defreceive ={casex => process(x).map(_.right)pipeTo sender }
|

The process method yields a future.

Now, I am trying to write a unit test (using the akka test kit), and nothing I seem to do captures the error result.

I can force the process method to throw an exception, but I somehow cannot assert that it was thrown.

Thank you!

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

--
     Read the docs: http://akka.io/docs/
     Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
     Search the archives: https://groups.google.com/group/akka-user
--- You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to