![]() | ![]() |
| Apache > Jakarta Seoul > Cactus > Running Tests | Docs for: v1.7dev | v1.6.1 Last update: May 10 2005 |
톰캣 가이드를 시작하기에 앞서
이 문서는 캑터스 1.4 이상과 톰캣 4.0 이상에서만 적용되는 것입니다.
역자 주 : 이글을 번역하는 시점에서 캑터스는 1.7, 톰캣은 5.5.9 및 5.0.28 이 릴리즈 되어있습니다.
실제 번역하면서 테스트한 버전은 캑터스 1.7, 톰캣 5.0.28 입니다.
이 문서는 10분 이내( 물론 다운로드 시간은 제외하고 입니다 :-) )에 톰캣에 캑터스 를 설정하고 캑터스 테스트를 실행 시켜 볼 수 있는 방법을 설명합니다. 어플리케이션에 캑터스 테스트를 실행해 볼 수 있도록 캑터스를 패키징하는 방법은 두 가지가 있습니다 :
여기에 더해, 캑터스의 테스트가 실행되도록 할 수 있는 여러 방법이 있습니다. ( 캑터스 테스트 실행 하기를 참고하세요 ) 여기서는 브라우저를 이용하는 가장 쉬운 방법을 사용할 것입니다.
단계 1 부터 단계 3 까지는 톰캣에서 캑터스 테스트를 실행시킬 수 있도록 하기 위해 단
한번만 수행하면 되는 설치 단계입니다.
단계 1 : 톰캣 설치하기
4.0 이상의 Tomcat을
다운로드 한 후 아무 디렉터리에 압축을 해제 합니다. 이 디렉터리를
역자 주 : 설치버전을 이용한 경우는 톰캣을 설치한 디렉터리를
[tomcat-root] 라 하면 됩니다.
단계 2 : 캑터스 jar 를 복사하기
캑터스 jar 들을 캑터스 다운로드 페이지 에서 다운로드 합니다.
jar 들은 zip 파일의
다음의 jar 들을
이것은 최소로 필요한 jar 들 입니다. 만약 차후에 캑터스와 HttpUnit의 통합
을 원하신다면
httpunit.jar 를 복사하십시오.
역자 주 :1.7 버전에 포함되어있는 jar 들의 버전은 위의 목록 순서대로 1.7, 2.0.2, 1.0.4, 3.8.1, 1.2.1 입니다. jar 명과
.jar 사이에 -<version> 형태로 표시됩니다. 예) cactus-1.7.jar
단계 3 : 톰캣 web.xml 수정하기
<servlet>
<servlet-name>ServletRedirector</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>value1 used for testing</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ServletTestRunner</servlet-name>
<servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
</servlet>
그 다음, 마지막
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletTestRunner</servlet-name>
<url-pattern>/ServletTestRunner</url-pattern>
</servlet-mapping>
경고: 전역
web.xml 을 수정하실때는 주의하셔야 합니다. 차후에 캑터스 앤트(Ant) 통합판을
사용하고 좀더 특별하게 <cactifywar> 앤트 테스크를 사용하신다면, 문제가 발생할 수 있습니다.
<cactifywar> 태스크는 자동으로 필요한 캑터스 리다이렉터들(redirectors)를 추가합니다.(결국
그것들은 두번 추가되는 것이고, 당연히 에러를 유발합니다).
단계 4 : 테스트를 위한 간단한 예제 어플리케이션 만들기지금부터 우리가 단위 테스트를 수행해 볼 수 있는 정말 정말 간단한 어플리케이션을 서버에 생성 하도록 하겠습니다. 먼저 다음과 같은 디렉터리 구조를 만듭니다 :
[tomcat-root]/webapps
|_ test
|_ WEB-INF
|_ classes
다음으로
역자 주 :
SampleServlet.java와 아래의 TestSampleServlet.java를 실행하기
위해서는 최소한 servletapi.jar - 혹은 서블릿 API 를 제공할 수 있는 (weblogic.jar 같은 )어떤 것이라도 괜찮습니다 -
와 cactus-1.7.jar 가 컴파일시 클래스패스에 설정되어있어야 합니다.
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
public class SampleServlet extends HttpServlet
{
public void saveToSession(HttpServletRequest request)
{
String testparam = request.getParameter("testparam");
request.getSession().setAttribute("testAttribute", testparam);
}
}
주지하고 계시겠지만 이것은 완성된 서블릿이 아닙니다. 하지만, 이것은 코드 작성이 끝나기 전일지라도 캑터스와
코드 테스트를 할 수 있다는 것을 보여줍니다. Extreme 프로그래머들은 이런 것을 좋아할 것입니다 :-)
이제 우리의 첫 번째 캑터스 테스트 케이스를 만들어 봅시다. 다음의
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
public class TestSampleServlet extends ServletTestCase
{
public TestSampleServlet(String theName)
{
super(theName);
}
public static Test suite()
{
return new TestSuite(TestSampleServlet.class);
}
public void beginSaveToSessionOK(WebRequest webRequest)
{
webRequest.addParameter("testparam", "it works!");
}
public void testSaveToSessionOK()
{
SampleServlet servlet = new SampleServlet();
servlet.saveToSession(request);
assertEquals("it works!", session.getAttribute("testAttribute"));
}
}
단계 5 : 테스트 실행하기
여태까지의 고생이 결실을 맺을 때입니다 !
브라우저를 이용해
다음의 결과를 보실 수 있습니다. ![]()
역자 주 : 물론 수행 시간등은 다를 수 있습니다.
Step 6: Even more fun!
좋습니다. 멋지네요... 하지만 XML 대신 HTML 을 원한다면요? 걱정하지 마십시오. 해결책이 있습니다.
다음의 XSLT 스타일시트(stylesheet) (<junitreport>
앤트 태스크에 사용되는 스타일시트에 기반한)를 http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet&xsl=cactus-report.xsl
에 접속해 보시면, 다음의 결과를 보실 수 있습니다.
역자 주 : 링크에서 받을 수 있는 파일은 xml 파일인데 문서의 url 정보는 xsl 입니다. 파일을 받은 후에는 url
을 xml 로 변경해서 접속해야 제대로된 결과를 볼 수 있습니다.
![]()
이 작업은 클라이언트측 XSLT 변환을 지원하는 어떠한 브라우저(예를 들어 인터넷 익스플로어나, 모질라같은)에서도 잘 실행됩니다.
역자 주 : 인터넷 익스플로어 6.0-sp2 와 파이어폭스 1.0.2 한글판에서 성공적으로 실행되었습니다.
|