2009-05-06 3 views
3

JSP 단위 테스트를 수행하는 작은 프레임 워크를 작성하는 중입니다. 이러한 JSP에는 몇 가지 사용자 정의 태그가 있습니다. 그렇지 않으면 특별한 태그가 아닙니다.임베디드 모드에서 JSP 테스트하기

많은 Java 단위 테스트 솔루션을 사용할 수 있지만 별도의 완전한 JSP 컨테이너를 시작하고 응용 프로그램을 배포하고 TCP 연결을 통해 결과를 수집하는 방법을 사용하지 않는 것이 좋습니다. 이 경우의 전형적인 예는 Apache Cactus, Selenium 등입니다. 가능한 한 가볍기 때문에 (네트워크 연결이 필요하지 않다는 것은 좋은 징조 임) 임베디드 솔루션을 원하는 것이 이상적입니다. 또한 다양한 모의 프레임 워크를 살펴 보았지만 JSP가 유닛 테스트 중에 컴파일/실행될 때 깨끗한 작업 예제가 하나도 발견되지 않았습니다.

내가 찾을 수 있었던 가장 가까운 솔루션

가 포함 된 모드로 부두를 사용했다, 또는 http://docs.codehaus.org/display/JETTY/ServletTester

에 설명 된대로 특히 그것은 불행하게도 위의 방법은 서블릿을 위해 작동하지만 JSP에 대한 언급이 없습니다, ServletTester 클래스입니다. 프로그래밍 방식으로 Jasper 서블릿을 프로그램 방식으로 연결하는 방법이 있다고 가정하지만, 두 가지를 통합하기 위해 Jetty/Jasper 내부로 다이빙을 할애 할 수는 없습니다. 자유롭고 유연하게 구성 할 수있는 한 다른 JSP/Servlet 컨테이너를 사용해도 상관 없습니다.

누구나 비슷한 설정과 경험을 공유하고자한다면 감사하게 생각합니다.

답변

1

HttpUnit-http://httpunit.sourceforge.net/을 살펴보십시오. JSP를 처리 할 메모리 서블릿 엔진 인 ServletUnit과 함께 번들로 제공됩니다. 일반적으로이 함수는 올바르게 인수 분해 된 MVC 응용 프로그램의보기 부분을 테스트하거나 일부 통합/승인 테스트를 수행하는 데에만 사용해야합니다.

비즈니스 로직은 POJO에서 직접 테스트해야합니다.

+0

감사합니다. 연구하는 동안 HttpUnit/ServletUnit을 분명히 보았습니다. 그러나 JSP를 실행하는 방법에 대한 명확한 문서를 찾을 수 없었습니다. FAQ에서 인용하기 : "클래스 패스에 Jasper 항아리가 필요하며, Jasper 항아리가 달린 항아리가 필요합니다." 즉, 이것은 Jetty가 제공 한 ServletTester 예제보다 나은 것은 아닙니다. 내가 틀렸다면 알려줘. – mindas

관련 문제