Кажется, что когда общедоступный статический метод контроллера явно вызывает другой общедоступный статический метод того же контроллера (с вызовом Java), Play! не знает, нужно ли просто выполнить код или перенаправить в функциональном тесты.
Если бы у меня был:
public class ApplicationTest extends FunctionalTest {
@Test
public void testProvesThatFunctionalTestsDoesntCallControllerMethods() {
Response response = GET("/");
assertEquals("", getContent(response));
}
@Test
public void testProvesThatCallingItDirectlyWorksAsExpected() throws Exception {
Response response = GET("/another");
assertEquals("ok!", getContent(response));
}
}
И:
public class Application extends Controller {
public static void index() {
another();
}
public static void another() {
renderText("ok!");
}
}
Но если я запускаю play run или play start и вызываю "/" в своем веб-браузере, он возвращает "ok!", не следует FunctionalTest Работать точно так же, как на продакшене или как на реальном сервере? Это заставляет меня избегать функционального тестирования или иметь огромную ручную настройку и зависимость от предварительно запущенного веб-сервера, что не круто.
Заранее спасибо.