<html>
<head>
<title>form test </title>
</head>
<body>
<form method="post" action="subscription" id="testform">
<table>
<tr>
<td>name : </td>
<td><input type="text" name="name" value="name"></td>
</tr>
<tr>
<td>email : </td>
<td><input type="text" name="email" value="email"></td>
</tr>
</table>
<input type="submit" name="subscribeBtn" value="Subscribe"/>
<input type="submit" name="unsubscribeBtn" value="UnSubscribe"/>
</form>
</body>
다음은 junit 테스트 java 클래스 이다.
public class HttpUnitTest extends TestCase {
super.setUp();
}
super.tearDown();
}
try {
WebConversation con = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:7001
/index.do?method=test");
WebResponse response =
con.getResponse(request);
WebForm form =
response.getFormWithID("testform");
assertEquals("subscription form action", "subscription",
form.getAction());
assertEquals("subscription form method", "post",
form.getMethod().toLowerCase());
assertEquals("name", "", form.getParameterValue("name"));
assertEquals("email", "", form.getParameterValue("email"));
} catch
(RuntimeException e) {
}
}
}
그리고 실행을 하게 되면 http://localhost:7001/index.do?method=test Action 을 취하면서
test.vm 파일을 클래스가 자동으로 읽어들여 화면에서 실행버튼을 누른것처럼 request 값을 담아
반환하게 된다.
WebForm form = response.getFormWithID("testform") 소스와 같이 test.vm 페이지에 form
id 를 testform 으로 설정했으므로 java 에서도 똑같은 이름의 파라미터를 넘긴다.
그러면 그속에 포함된 내용이 넘어올것이다.
지금 html 파일에는 name input 란에 'name' 이라는 값이있다. 그러므로 위의 소스를 실행하게 되면
assertEquals("name", "", form.getParameterValue("name")) 공백 equals 체크를 하기
때문에 에러가 날것이다.
이와같이 HttpUnit 을 사용하여 Web Application 도 다양한 경우의 수를 설정하여 편리하게 테스트를 진행해
볼수 있다.
'프로그래밍 툴 > 이클립스(Eclipse)' 카테고리의 다른 글
Class 의 의존관계를 파악할수 있게 해주는 Classpath Helper (0) | 2009.05.28 |
---|---|
eclipse plugin 으로 상수를 변수로 뽑기위한 리펙토링 사용하기 (0) | 2009.05.19 |
AnyEditTools 플러그인의 기능과 사용법 (0) | 2009.05.16 |
Eclipse 에서 JUnit plugin 으로 Servlet Test Case 를 만들어본다. (0) | 2009.03.11 |
junit 과 HttpUnit 을 활용한 Web Application 단위테스트 만들기 (1) | 2009.03.05 |
Junit 에서 여러 테스트 클래스를 한번에 이용 (0) | 2009.03.04 |
Eclipse 에서 Junit 사용법 (8) | 2009.03.04 |
ResourceBundleEditor Plugin 을 사용하여 다국어 제작을 보다 쉽게 해보자 (0) | 2009.02.22 |