서문
현재 소프트웨어 개발 분야에서 단위 테스트는 소프트웨어 개발의 효율성을 높이고 개발 품질을 보장할 수 있어 점점 더 많은 관심을 받고 있습니다. 과거에는 서버 측 개발에서 단위 테스트를 자주 볼 수 있었지만, 웹 프로그래밍 분야의 분업이 점차 명확해짐에 따라 프런트엔드 Javascript 개발 분야에서도 관련 단위 테스트를 수행할 수 있습니다. 프론트엔드 개발의 품질.
서버측 단위 테스트에는 다양한 테스트 프레임워크가 있습니다. JavaScript에도 몇 가지 뛰어난 프레임워크가 있습니다. 하지만 이 글에서는 간단한 단위 테스트 프레임워크를 단계별로 구현하겠습니다.
JS 단위 테스트에는 여러 측면이 있으며, 가장 일반적인 측면은 메서드 기능 확인 및 브라우저 호환성 확인입니다. 이 기사에서는 주로 첫 번째 유형에 대해 설명합니다.
이 글에서 검토한 JS 코드는 제가 이전에 작성한 JS 날짜 형식 지정 방법입니다(javascript 날짜 형식 지정 기능, C#에서의 사용법과 유사).
Date.prototype.toString=function(format){
var time ={};
time.Year=this.getFullYear();
time.TYear=("" time.Year).substr(2)
time.Month=this .getMonth() 1 ;
time.TMonth=time.Month<10?"0" time.Month:time.Month;
time.Day=this.getDate()
time.TDay= time.Day<10 ?"0" time.Day:time.Day;
time.Hour=this.getHours();
time.THour=time.Hour<10?"0" 시간: 시간.시간
시간.시간=시간.시간<13?시간.시간:시간.시간-12
시간.시간=시간.시간<10?"0" 시간.시간:시간.시간 ;
time .Minute=this.getMinutes();
time.TMinute=time.Minute<10?"0" time.Minute:time.Minute;
time.Second=this.getSeconds() ;
time .TSecond=time.Second<10?"0" time.Second:time.Second;
time.Millisecond=this.getMilliseconds()
var oNumber=time.Millisecond/1000;
if( 형식!=정의되지 않음 && 형식.replace(/s/g,"").length>0){
format=format
.replace(/yyyy/ig,time.Year)
.replace( /yyy/ig,time.Year)
.replace(/yy/ig,time.TYear)
.replace(/y/ig,time.TYear)
.replace( /MM/g, time.TMonth)
.replace(/M/g,time.Month)
.replace(/dd/ig,time.TDay)
.replace(/d/ig, time.Day)
.replace(/HH/g,time.THour)
.replace(/H/g,time.Hour)
.replace(/hh/g,time.Thour)
.replace( /h/g,time.hour)
.replace(/mm/g,time.TMinute)
.replace(/m/g,time.Minute)
.replace( /ss/ig, time.TSecond)
.replace(/s/ig,time.Second)
.replace(/fff/ig,time.Millisecond)
.replace(/ff/ig, oNumber.toFixed(2 )*100)
.replace(/f/ig,oNumber.toFixed(1)*10);
}
else{
format=time.Year "-" time.Month "- " time.Day " " time.Hour ":" time.Minute ":" time.Second
}
반환 형식
}
이 코드는 현재 존재하지 않습니다. 심각한 버그가 발견되었습니다. 이 문서에서는 테스트를 위해 .replace(/MM/g,time.TMonth)를 .replace(/MM/g,time.Month)로 변경했습니다. 월이 10보다 작은 경우. 두 자리 숫자는 월을 나타냅니다.
좋은 디자인은 리팩토링된다는 말이 있습니다. 이 글에서도 마찬가지입니다.
첫 번째 버전: 원본 Alert 사용
첫 번째 버전에서는 매우 게으르기 때문에 직접 Alert를 사용하여 확인합니다. 전체 코드는 다음과 같습니다.