홈페이지
http://www.jsunit.net/다운로드
https://sourceforge.net/project/showfiles.php?group_id=28041(이클립스 플러그인은 수동으로 plugin 디렉토리에 복사)
예제
http://www.jsunit.net/examples/index.html참고할 만한 사이트:
http://webjoy.kr/132http://wiki.javajigi.net/pages/viewpage.action?pageId=4497<html>
<head>
<title>Test Page for multiplyAndAddFive(value1, value2)</title>
<script language="javascript" src="jsUnitCore.js"></script>
<script language="javascript" src="myJsScripts.js"></script>
</head>
<body>
<script language="javascript">
function testWithValidArgs() {
assertEquals("2 times 3 plus 5 is 11", 11, multiplyAndAddFive(2, 3));
assertEquals("Should work with negative numbers", -15, multiplyAndAddFive(-4, 5));
}
function testWithInvalidArgs() {
assertNull("A null argument should result in null", multiplyAndAddFive(2, null));
assertNull("A string argument should result in null", multiplyAndAddFive(2, "a string"));
}
function testStrictReturnType() {
assertNotEquals("Should return a number, not a string", "11", multiplyAndAddFive(2, 3));
}
function testWithUndefinedValue() {
assertNull("An undefined argument should result in null", multiplyAndAddFive(2, JSUNIT_UNDEFINED_VALUE));
}
</script>
</body>
</html>
의 형태로 테스트 코드 작성
샘플
jsUnitMyFirst.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JsUnit Framework tests</title>
<script language="javascript" type="text/javascript" src="../app/jsUnitCore.js"></script>
<script language="javascript" type="text/javascript" src="myJsScripts.js"></script>
<script language="javascript" type="text/javascript">
function testAdd() {
assertEquals(5, add(3, 2));
}
function testSimple(){
var d = new Date(); //month는 0부터 시작
assertEquals(5,d.getMonth());
}
function testDate10DaysBeforeAdjustDate(){
var expectedDate = new Date(2008,5-1,22); //5월 22일
assertEquals(expectedDate.getDate(),adjustDate('1').getDate());
}
function testMonth10DaysBeforeAdjustDate(){
var expectedDate = new Date(2008,5-1,22); //5월 22일
assertEquals(expectedDate.getMonth(),adjustDate('1').getMonth());
}
function testDateOneMonthsBeforeAdjustDate(){
var expectedDate = new Date(2008,5-1,1); //5월 1 일
assertEquals(expectedDate.getDate(),adjustDate('2').getDate());
}
function testMonthOneMonthsBeforeAdjustDate(){
var expectedDate = new Date(2008,5-1,1); //5월 1일
assertEquals(expectedDate.getMonth(),adjustDate('2').getMonth());
}
function testDateOneYearsBeforeAdjustDate(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate('3').getYear());
}
function testDateOneYearsBeforeAdjustDate(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate('3').getYear());
}
function testDate10DaysBeforeAdjustDate2(){
var expectedDate = new Date(2008,5-1,22); //5월 22일
assertEquals(expectedDate.getDate(),adjustDate2('10d').getDate());
}
function testMonth10DaysBeforeAdjustDate2(){
var expectedDate = new Date(2008,5-1,22); //5월 22일
assertEquals(expectedDate.getMonth(),adjustDate2('10d').getMonth());
}
function testDateOneMonthsBeforeAdjustDate2(){
var expectedDate = new Date(2008,5-1,1); //5월 1 일
assertEquals(expectedDate.getDate(),adjustDate2('1m').getDate());
}
function testMonthOneMonthsBeforeAdjustDate2(){
var expectedDate = new Date(2008,5-1,1); //5월 1일
assertEquals(expectedDate.getMonth(),adjustDate2('1m').getMonth());
}
function testDateOneYearsBeforeAdjustDate2(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate2('1y').getYear());
}
function testDateOneYearsBeforeAdjustDate2(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate2('1y').getYear());
assertEquals(expectedDate.getYear(),adjustDate2('1y').getYear());
}
function testDateOneYearsBefore365DaysBeforeAdjustDate3(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate2('1y').getYear());
assertEquals(adjustDate2('366d').getDate(),adjustDate2('1y').getDate());
}
function testDateOneYearsBefore12MonthBeforeAdjustDate3(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate2('1y').getYear());
assertEquals(adjustDate2('12m').getDate(),adjustDate2('1y').getDate());
}
function testDateOneYearsBefore11 MonthBeforeAdjustDate3(){
var expectedDate = new Date(2007,5-1,1); //2007년 5월 1 일
assertEquals(expectedDate.getYear(),adjustDate2('1y').getYear());
assertEquals(adjustDate2('11m').getMonth(),adjustDate2('1y').getMonth());
}
function testPeriod2date(){
assertEquals(10, period2date("10d"));
}
function testLastChar(){
assertEquals("m",lastChar("3m"));
assertEquals("y",lastChar("1y"));
assertEquals("d",lastChar("30d"));
assertEquals("m",lastChar("2m"));
}
</script>
</head>
<body>
</body>
</html>
myJsScripts.js
function add(a, b) {
return a + b;
}
function adjustDate(period){
var today = new Date();
var yesterday;
var year = today.getYear();
var month = today.getMonth(); // getMonth()는 index를 return(0,1)
var date = today.getDate();
if(period =='1'){
yesterday = new Date(year, month, date-10);
}
if(period =='2'){
yesterday = new Date(year, month-1, date);
}
if(period =='3'){
yesterday = new Date(year-1, month, date);
}
return yesterday;
}
function adjustDate2(period){
//period가 유효하지 않은 경우 디폴트로 30일 전
//period 형태는 -10d, -1m, -1y
if(!period || period.length<1){
period = "-10d";
}
var today = new Date();
var yesterday;
var year = today.getYear();
var month = today.getMonth(); // getMonth()는 index를 return(0,1)
var date = today.getDate();
var idx = -1;
if( period.indexOf('d')>-1){
var str = parseInt(period.substr(0,period.indexOf('d')));
yesterday = new Date(year, month, date-str);
}else if( period.indexOf('m')>-1){
var str = parseInt(period.substr(0,period.indexOf('m')));
yesterday = new Date(year, month-str, date);
}else if( period.indexOf('y')>-1){
var str = parseInt(period.substr(0,period.indexOf('y')));
yesterday = new Date(year-str, month, date);
}
return yesterday;
}
function period2date(period){
var str = parseInt(period.substr(0,period.indexOf('d')));
return str;
}
function lastChar(str){
if(str){
return str.charAt(str.length-1);
}else{
return null;
}
return
}
정상적으로 수행된 경우
에러난 경우
에러난 부분 설명 (Show selected 나 Show all 클릭시)