[jsunit] javascript 테스팅프레임웍

홈페이지 http://www.jsunit.net/
다운로드 https://sourceforge.net/project/showfiles.php?group_id=28041
(이클립스 플러그인은 수동으로 plugin 디렉토리에 복사)
예제 http://www.jsunit.net/examples/index.html

참고할 만한 사이트: http://webjoy.kr/132
http://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 클릭시)

by 지니짱 | 2008/06/01 16:55 | 프로그래밍 | 트랙백 | 덧글(0)

트랙백 주소 : http://bumjin.egloos.com/tb/3766928
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶