서블릿에서 수신 한 오브젝트 목록을 기반으로 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가 이미 호스팅 될 필요가 있거나, 실제로 찾고있는 것이 아닌 "자동 클릭"솔루션입니다.
질문자의 질문에 어떻게 답변 할 수 있는지 몇 가지 예를 제공해주십시오. 단순히 외부 링크를 게시하지 않는 것이 가장 좋습니다. – Suever