두 메소드는 JUnit 프레임웍에도 존재한다. 하지만 두 프레임웍에서의 메소드 구현에는 중요한 차이점이 존재한다. JUnit 에서는 테스트 마다 Test 클래스의 인스턴스가 새로 생성되기 때문에 멤버의 값이 항상 초기화 되지만 JsUnit 에서는 매 테스트 마다 값이 보존된다. 그렇기 때문에 더더욱 JsUnit 에서는 setUp 및 tearDown 메소드가 중요하다. setUp 및 tearDown 메소드는 하나의 테스트 메소드 실행 전과 후에 한번씩 수행된다. 테스트 메소드가 n 개 라면 테스트 메소드 실행 전과 후에 각각 n 번의 setUp, tearDown 메소드가 실행되는 것이다.
또다른 중요한 차이점 이라면 JUnit 에서는 테스트 실행 순서가 보장되지 않는다. 하지만 JsUnit 에서는 테스트 페이지에 선언된 순서의 역순으로 실행된다.
예제를 살펴보자.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>A Simple Test Page</title>
<script language="javascript" src="../jsunit/app/jsUnitCore.js"></script>
<script language="javascript" src="js/sample.js"></script>
<script language="javascript">
function testValidArgs(){
assertEquals("2 + 2 is 4", 4, addTwoNumbers(2, 2));
}
function setUp(){
document.getElementById("value1").value = "2";
document.getElementById("value2").value = "2";
}
function tearDown(){
document.getElementById("value1").value = "";
document.getElementById("value2").value = "";
}
function addNumbers(){
var v1 = document.getElementById("value1").value;
var v2 = document.getElementById("value2").value;
return addTwoNumbers(v1, v2);
}
</script>
</head>
<body>
<form action="#">
<input type="text" id="value1"/>
<input type="text" id="value2"/>
<input type="button" value="Add" onclick="addNumbers()"/>
</form>
</body>
</html>
<setUpTearDown.html 의 전체 소스 코드>
위 샘플을 보면 setUp 메소드는 테스트 메소드인 testValidArgs 이 샐행되기 전에 value1, value2 라는 폼요소에 "2" 값을 설정하고 있으며, tearDown 메소드는 testValidArgs가 실행된 후에 두 폼요소의 값을 "" 으로 초기화 하고 있음을 알 수 있다. JsUnit 으로 테스트 해보면 실행결과를 알 수 있을 것이다.
'Framework > AJAX' 카테고리의 다른 글
AJAX 강의 6-5장 - JsUnit 활용/Tracing and Logging (0) | 2007.06.29 |
---|---|
AJAX 강의 6-4장 - JsUnit 활용/setUpPage 메소드 (0) | 2007.06.29 |
AJAX 강의 6-2장 - JsUnit 활용/테스트 메소드작성 (0) | 2007.06.29 |
AJAX 강의 6-1장 - JsUnit 활용/시작하기 (0) | 2007.06.29 |
팝업 활용 (0) | 2007.04.04 |