'QUnit'에 해당되는 글 2건

  1. 2011.06.01 QUnit callback
  2. 2011.06.01 QUnit
Programming/Javascript2011.06.01 13:33
Callback functions
  • QUnit.log({result, actual, expected, message})
  • Assertion 이 종료되었을 때 호출. result 는 boolean. message는 string
  • QUnit.start({name})
  • 하나의 test가 시작될 때 호출 , setup 과 같음
  • QUnit.testDown({name, failed, passed, total})
  • 하나의 test가 완료되었을 때 실행 , teardown 과 같음
  • QUnit.moduleStart({name})
  • 새로운 모듈의 test가 실행될 때 호출
  • QUnit.moduleDone({name, failed, passed, total})
  • 모듈의 test가 모두 완료되었을 때 호출
  • QUnit.begin() 
  • 테스트의 시작 전 한번만 호출된다.
  • QUnit.done({failed, passed, total, runtime}) 
    테스트가 모두 끝났을 때 호출된다. Runtime은 실행시간으로 milliseconds 이다. 

QUnit.testDone = function(param){
	alert("name : "+param.name+"\n"+
		"failed : "+param.failed+"\n"+
		"passed : "+param.passed+"\n"+
		"total : "+param.total+"\n");
}

테스트 전에 위의 코드를 넣게 되면 하나의 test가 끝날때마다 alert으로 이름, 실패, 성공, 전체 수를 알려주게 됩니다.
이와 같은 방식으로 callback함수를 사용하여 원하는 테스트를 만들 수 있습니다. 
신고
Posted by 초프(초보 프로그래머)
Programming/Javascript2011.06.01 11:42
자바스크립트를 단위테스트하는 QUnit 입니다.
JQuery 도 QUnit으로 테스트했다고 합니다.
사용법이 간단해서 간단한 예제를 적어 봅니다.

 

$(document).ready(function(){
	test("OK Test", 2, function(){
		// OK test 라는 이름으로 2번의 assertion을 기대
		ok(true);
		ok(false, "not true! only true is pass");
	});

	test("Expected Test", 1, function(){
		// 기대하는 assertion 횟수가 달라서 실패
	});

	test("Equals Test", 4, function(){ 
		// Equals Test 라는 이름으로 5번의 assertion을 기대
		equal(1,true);
		equal("1",1);
		equal(1,1);
		notEqual(1,false,"not equal");
	}); // 모두 통과

	test("Strict Equal Test", function(){
		// Strict Equal Test 라는 이름으로 기대하는 assertion 횟수 없음
		strictEqual(1,1);
		strictEqual("1",1, "type dismatch"); // 실패 메시지 포함
	}); // 한 개 통과

	test("Deep Equal Test", function(){
		// 안에 있는 값들이 모두 동일한지 확인하는 테스트
		var value1 = [1,2,3];
		var value2 = [1,2,"3"];
		var value3 = [value1, [4,5,[0]]];
		var value4 = [value1, [4,5,[false]]];

		notDeepEqual(value1, value2, "type dismatch");
		notDeepEqual(value3, value4);
		deepEqual(value3, [[1,2,3],[4,5,[0]]]);
	});

	test("Raisses Test", function(){
		// 예외 발생을 확인하는 테스트
		function Exception(){};
		function AException(){};

		raises(function(){
			throw new Exception();
		}, Exception); // 예외 지정

		raises(function(){
			throw new Exception();
		}); // 예외 지정하지 않음

		raises(function(){
			throw new Exception();
		}, AException, "This is not AException"); // 기대하는 예외와 틀림

		raises(function(){
			// 예외 없음
		}, Exception, "No Exception");
	});
});



신고
Posted by 초프(초보 프로그래머)