Play Framework 2.4.0单元测试问题

时间:2015-06-15 18:58:35

标签: unit-testing playframework

我的问题如下:

我正在尝试在Play Framework 2.4应用程序中测试我的控制器中的多个单元测试。我发现我需要使用FakeApplication将FakeRequests运行到我的控制器中,但由于一些奇怪的原因,如果我启动并停止 new FakeApplication,则单元测试会起作用。如果我启动并停止相同的 FakeApplication,第一次使用FakeRequest进行单元测试,其余的则不行。

我的问题:

我做错了什么?如果我启动和停止新的FakeApplication,为什么我的单元测试工作,如果我开始并停止相同的FakeApplication,为什么它们不工作?

以下是我的代码段:

  

UnitTest类:

@Test
public void submitTestCorrectInput() {

    final String input = CORRECT_INPUT;
    final Result result = doCall(input);

    assertThat(result.status(), is(equalTo(Http.Status.OK)));
}

@Test
public void submitTestIncorrectInput() {

    final String input = INCORRECT_INPUT;
    final Result result = doCall(input);

    assertThat(result.status(), is(equalTo(Http.Status.NOT_FOUND)));
}

private Result doCall(final String input, final String max, final String filter) {

    final Http.RequestBuilder requestBuilder = Helpers.fakeRequest(routes.Application.submit(input));

    return route(requestBuilder);
}
  

unittest类的超类:

@Before
public void setUp() {
    Play.start(Helpers.fakeApplication().getWrappedApplication());
}

@After
public void tearDown() {
    Play.stop(Helpers.fakeApplication().getWrappedApplication());
}

0 个答案:

没有答案