I have created a test class that extends (Java)
In the test class I have two unit tests that rely on a TestRoute. The TestRoute is created like this in the body of my test class:
TestRoute appRoute = testRoute(new MyHTTPWithActors(system).createRoute());
MyHTTPWithActors has a constructor that needs an ActorSystem passed to it.
My test class builds that ActorSystem with a
@BeforeClass annotation (once per test class run, right?) with:
system = ActorSystem.create("test-system", ConfigFactory.load("application-test"));
In trying my tests I noted a few things that I want to solve:
That application-test config does not have remoting specified. It also seems to be ignored. My tests keep firing up an actor system that binds ports, ie. uses remoting. I can put any
resourceBasenameparameter I want there, it won’t actually use that value in
ConfigFactory.load(). If I leave out that ConfigFactory param and use the name only version of
ActorSystem.create()my tests fail with a “Address already in use” error.
If I instantiate the ActorSystem as above, I can see that it is being created once for each test. I can’t see how to avoid this behavior?.
How can I make ActorSystem not be created and torn down for each test? How can I make the test ActorSystem load my config and not use remoting? Why is it working with the ConfigFactory param version?