[Flex]FlexUnit 테스트

developer/Flash Builder(Flex) | 2009/12/09 22:00 | 무례한 좀

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를 만들어주는 기능 추가와 이에 관련된 내용이 포함되어 있는 것으로 알고 있다.

Share/Bookmark

이전 1 ... 11 12 13 14 15 16 17 18 19 ... 70 다음