jdevelop
jdevelop

Reputation: 12296

Getting instance of class used to create an actor in Akka in test

How do I get instance of class I passed to Props when creating an actor with ActorSystem.actorOf? I need that for unit tests to get reference to some properties of the actor, so the actor is local in the same JVM as test.

I don't want to use Akka's test framework because I need the actor live, it's kind of integration tests.

Upvotes: 5

Views: 2171

Answers (2)

sourcedelica
sourcedelica

Reputation: 24040

The Akka Testkit is made for integration testing. To get access to the internal state of an actor send it a message asking for it. Your actor can reply to the sender which is the TestKit's testActor.

Upvotes: 3

Randall Schulz
Randall Schulz

Reputation: 26486

The underlying instance of an Actor subclass is well and truly sealed off from you and you're not going to get at it without mucking with Akka code itself. If you look at the definition of the ActorRef you'll see that it doesn't even contain a reference to the Actor!

Similarly, you cannot instantiate Actor subclasses directly using new.

I guess the Akka designers were serious about the ActorRef / Actor firewall...

Upvotes: 7

Related Questions