我的问题如下:
我正在尝试在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());
}