0
컨트롤러의 공용 정적 메서드가 동일한 컨트롤러의 다른 정적 메서드를 명시 적으로 호출 할 때 (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!");
}
}
하지만 플레이 실행을 실행하면 또는 플레이 "/"내 웹 브라우저에서 다음 반환를 시작하고 전화 " 알았어! ", FunctionalTest 정확히 실제 서버에서 실행되는 것처럼 작동하지 않습니까? 그것은 기능 테스트를 피하거나 미리 실행중인 웹 서버의 거대한 수동 설치 및 종속성을 갖기 위해 나를 밀어 붙입니다. 사전에
감사합니다.
처럼 뭔가를해야, 동일하지만 나는 그것이 얼마나 좋은 궁금합니다. 내 프로젝트에서 나는 다른 컨트롤러 메서드를 호출하는 메서드가 있고이 메서드는 간접적 인 재귀에서 첫 번째 메서드를 호출 한 다음 두 번 반환하고 다음 개체로 리디렉션합니다. 원하는 동작처럼 들리지만, Play! 사용자는 명확하게 이해해야하므로 모든 http 작업을 Java 호출을 위해 피할 수 있습니다. –
"@Util"주석 또는 일반적인 개인 메서드를 사용하여 다른 일반적인 메서드를 리디렉션 대신 직접 Java 호출을 수행하려는 경우 –