2014-07-23 2 views
1

서블릿에서 수신 한 오브젝트 목록을 기반으로 HTML을 생성하는 로직이 포함 된 JSP 파일이 있습니다. 서블릿의 doPost() 메소드에서이 객체 목록을 설정 한 다음이 객체를 HttpServletRequest 속성으로 설정합니다 (request.setAttribute("objectList", objectList);). 당신이 볼 수 있듯이, 개체 유형을 기준으로 JSP가 선택 상자 또는 텍스트 상자에 대한 HTML을 생성하거나유닛 테스트 JSP 파일

<c:set var="endSelect" value="${false }" /> 
<c:forEach items="${objectList }" var="object"> 
    <c:choose> 
    <c:when test="${object.getType().equals("selectObject") }"> 
     <c:if test="${!endSelect }"> 
     <select id="${object.getId() }-detail" name="${object.getName() }" > 
     </c:if> 
     <option name="${object.getName() }" value="${object.getValue() }"> 
     <c:out value="${object.getValue() }" /> 
     </option> 
     <c:set var="endSelect" value="${true }" /> 
    </c:when> 
    <c:otherwise> 
     <label for="${object.getId() }"> 
     <c:out value="${child.getDecisionName() }" /> 
     </label> 
     <input id="${object.getId() }" type="text" name="${object.getName() }" > 
    </c:otherwise> 
    </c:choose> 
    <c:if test="${endSelect }"> 
    </select> 
    <c:set var="endSelect" value="${false }" /> 
    </c:if> 
</c:forEach> 

: 여기가 JSP 코드와 관계있는 부분이다.

다음은 테스트 방법입니다. 각각의 테스트가 다른 객체를 생성하거나 (어느 쪽이든간에) 테스트 대상 파일을 설정하고 해당 객체를 목록에 넣은 다음 해당 목록을 JSP 파일로 보냅니다. . 그런 다음 JSP에서 생성 된 HTML의 유효성을 검사하려고합니다.

문제는 내 JSP가 항상 서버에서 호스팅되지 않는 것입니다. URL을 가져올 수 없습니다. 그리고 저는 서버를 시작하고 테스트 용 JSP 페이지를 호스팅하기를 원하지 않습니다. "이봐, 여기 가짜 속성이 설정된 가짜 HttpServletRequest가있다.이 JSP 파일을 통해 요청을 실행하고 생성 된 HTML을 표시하여 특정 테스트에 선택 태그가 있는지 확인하고 다른 태그에는 선택 태그가 없는지 확인한다. 끝 셀렉트 태그는 예상되는 위치, 텍스트 입력의 수 등을 나타냅니다. "

아파치 선인장/자카르타 선인장, JSoup, HttpUnit, 셀레늄, JUnit, 그리고 Mockito가 있지만,이 모든 것들은 JSP가 이미 호스팅 될 필요가 있거나, 실제로 찾고있는 것이 아닌 "자동 클릭"솔루션입니다.

답변

2

이렇게 JSP를 테스트하고 싶지는 않습니다. Tomcat과 같은 것에서 JSP 렌더링 엔진을 추출하기 위해 몇 가지 길을 가지지 않는 한, JSP 테스트는 본질적으로 통합 테스트입니다.

는 또한, 한 번만 컨테이너를 시작하고에 대한 통합 테스트의 전체 제품군을 실행해야하는 등

다른 템플릿 엔진은, 예를 들어, 이러한 제한에서 프리 마커, 핸들 바, 용납하지 않는다.

0

빈, 세션 변수 및 요청 매개 변수를 JSP에 직접 삽입 할 수있는 도구 인 JspTester을 검사 할 수 있습니다.

JspTester를 사용하면 Tomcat과 같은 로컬 웹 서버에서 웹 응용 프로그램을 실행해야합니다 (이 "호스팅"양식이 요구 사항과 맞지 않기를 바랍니다). 그런 다음 JspTester의 로컬 URL을 호출하십시오. 일단 JSP를 렌더링하기 위해 필요한 객체를 입력하기위한 상단 패널과 JSP를 렌더링하는 "실행"아이콘을 클릭하면됩니다.

+0

질문자의 질문에 어떻게 답변 할 수 있는지 몇 가지 예를 제공해주십시오. 단순히 외부 링크를 게시하지 않는 것이 가장 좋습니다. – Suever