FlexUnit Test란 기본적인 각 단위(함수나 클래스) 별로 테스트하는 방식으로 Flex뿐만 아니라 액션스크립트3.0에서도 가능한 테스트 프레임워크이다. (디버깅의 한 종류)
유닛 테스트는 정상적으로 작동하는 것을 검증하는 방법으로써 전체 test를 하기 전에 빠르게 에러를 확인하고 수정하도록 개발자들이 요하는 작업 프로세스 중의 하나이다.
다운로드
http://opensource.adobe.com/wiki/display/flexunit/Downloads
해당 파일을 풀고 lib폴더의 swc를 가져다 해당 프로젝트에 추가하게 되면 이용할 수 있다.
기본적인 유닛 테스트를 위한 3요소를 알아보자.
1. 테스트할 애플리케이션를 구성하는 클래스.
2. 유닛 테스트를 목적으로 작성된 클래스들.(테스트 케이스)
3. 수행하고 결과를 보여주는 View 창 실행하는 클래스 혹은 mxml.(테스트 러너)
예문)
한 폴더에 아래 3개의 파일을 생성한다.
IsTested.as
public class IsTested
{
public function IsTested()
{
}
public function RetunrNum(num:Number):Number
{
return num;
}
}
Test.as
import flexunit.framework.TestCase;
import flexunit.framework.TestSuite;
public class Test extends TestCase
{
public function Test(methodName:String)
{
super(methodName);
}
public function testReturnNum():void
{
var test:IsTested=new IsTested();
var num:Number=test.RetunrNum(2);
assertEquals(num,2); //단언문(아래 설명 참조): 2를 넘겨 주었기 때문에 2가 나와야 함
// 매개변수 뒤의 2는 예상 결과값을 넣어주면서 그 예상 값이 나오는지 비교하는 것이다.
}
public static function suite():TestSuite
{
var suite:TestSuite=new TestSuite();
suite.addTest(new Test("testReturnNum"));
return suite;
}
}
Runner.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" minWidth="1024" minHeight="768"
xmlns:flexunit="flexunit.flexui.*"
creationComplete="init(event)">
<mx:Script>
<![CDATA[
private function init(event:Event):void
{
testRunner.test=Test.suite();
testRunner.startTest();
}
]]>
</mx:Script>
<flexunit:TestRunnerBase id="testRunner"
width="100%" height="100%"/>
</mx:Application>
자 이렇게 하고 Runner.xml을 실행하게 되면 browser에 해당 값이 잘 들어오는지 비교하여 볼 수 가 있다.
단언문
TestCase의 부모 클래스인 Assert 클래스 상속에 의해 이용할 수 있는 메서드들
assertEquals(): 매개변수가 같은지 테스트(==연산자와 동일)
assertStrictlyEquals(): 타입과 매개변수가 같은지 테스트(===연산자와 동일)
assertTrue():매개변수가 참
assertFalse():매개변수가 거짓
assertUndefined():매개변수가 undefined
assertNull():매개변수가 null
fail():실패를 위한 테스트
tip. flash builder4에서는 testcase, testsuite class를 만들어주는 기능 추가와 이에 관련된 내용이 포함되어 있는 것으로 알고 있다.






