玩,java8 - 在测试中重用测试假应用程序?

时间:2014-09-15 21:00:15

标签: testing playframework

无论如何都要阻止演员系统在测试之间关闭和启动? 我不断抱怨akka异常抱怨演员系统失灵。 我可以模拟/存根来摆脱对假应用程序的依赖,但它需要一些工作 - 希望能够启动一个静态测试应用程序并在应用程序中运行不同的东西。

例如,我有这样的(糟糕的)测试 - 我可以以某种方式在测试之间重复使用正在运行的应用程序吗?它似乎仍然在某条线上关闭。

running(Fixtures.testSvr, HTMLUNIT, browser -> new JavaTestKit(system) {{
            F.Promise<TestResponseObject> resultPromise = client.makeRequest("request", "parameterObject", system.dispatcher());

            boolean gotUnmarshallingException = false;
            try {
                Await.result(resultPromise.wrapped(), TotesTestFixtures.timeout.duration());
            } catch (Exception e) {
                if ((e instanceof exceptions.UnmarshallingException)) {
                    gotUnmarshallingException = true;
                }
            }

            if(gotUnmarshallingException == false) fail();
        }});

1 个答案:

答案 0 :(得分:0)

您可以尝试摆脱running方法(它会在最后停止测试服务器)并自己初始化测试服务器,但我不知道Akka是否可供您使用:< / p>

@BeforeClass
public static void start() {
    testServer = testServer(PORT, fakeApplication(inMemoryDatabase()));
    testServer.start();
    // Maybe you dont ned this...
    try {
        testbrowser = new TestBrowser(HTMLUNIT, "http://localhost:" + PORT);
    } catch (Exception e) {
    }     
}

@Test
public void testOne() {
    new JavaTestKit() {
     // (...)
    }   
}

@AfterClass
public static void stop() {        
    testServer.stop();
}