'TDD'에 해당되는 글 1건

  1. 2009.10.30 [Flex] Flash Builder 4 Beta2에 포함된 FlexUnit 4 사용하기
 
테스트의 중요성은 저번 스프링 강의시간에 충분히 느꼈습니다. 하지만, 역시 귀차니즘 때문에 잘 안만들게 되는 게 테스트인 듯 합니다. 하지만, 한번 만들어놓으면 이래저래 매우 유용한 것이 테스트죠.

다운로드는 여기서....-_-


Java에서는 Junit이라는 것이 있는데, 4버전에서는 Annotation(@)을 이용해서 쉽게 테스트를 만들곤 했는데요. Flex에서도 비슷한 기법을 이용합니다. 메타데이터를 위에다가 붙여서-_- 손쉽게 테스트를 만들 수 있습니다.
[code][Test]
public function testMyTest():void
{
}[/code]
와....Flash Builder를 보면 Java를 많이 따라한 것을 볼 수 있습니다. 예전엔 폴더생성으로만 만들 수 있었던 패키지가 직접적인 패키지 생성메뉴를 만들어서 Package Explorer에서 패키지형태로 볼 수 있습니다.
암튼, 자바와 닮아가는 듯-_-

1. 간단한 프로젝트 생성
Flex Project하나 생성.

2. 서비스 클래스 생성
덧셈 뺄셈 클래스하나 작성
com.mudchobo.test패키지의 Calc클래스 생성
Calc.as
[code]package com.mudchobo.test
{
    public class Calc
    {
        public function Calc()
        {
        }
       
        public function addition(a:Number, b:Number):Number
        {
            return a + b;
        }
       
        public function subtraction(a:Number, b:Number):Number
        {
            return a - b;   
        }
    }
}[/code]

3. 테스트 생성
New -> Test Case Class -> New FlexUnit 4 test선택. Name은 CalcTest로하고 Finish.
CalcTest.as
[code]package flexUnitTests
{
    import com.mudchobo.test.Calc;
   
    import flexunit.framework.Assert;

    public class CalcTest
    {
        private var calc:Calc;
       
        public function CalcTest()
        {
        }
       
        [Before]
        public function before():void
        {
            calc = new Calc();   
        }
       
        [Test]
        public function testAddition():void
        {
            var result:Number = calc.addition(50, 50);
            Assert.assertEquals(result, 100);
        }
       
        [Test]
        public function testSubtraction():void
        {
            var result:Number = calc.subtraction(50, 50);
            Assert.assertEquals(result, 0);
        }
    }
}[/code]
여기까지 작성하면 FlexUnitCompiler.mxml이라는 파일이 자동으로 생겼을겁니다. 이건 건드리지 않습니다. 검색해보니 이전방식으로 core생성해서 UIListener를 넣어서 하려고했는데, 이거 그렇게 하는게 아니더군요-_-
심지어 UIListener클래스는 없습니다-_-

4. 테스트 실행
테스트 실행은 package explorer에서 테스트클래스의 오른쪽 마우스버튼을 누르면 "Execute FlexUnit Tests"라는 메뉴가 있습니다. 그걸 선택하면 테스트가 됩니다. FlexUnitApplication.mxml파일도 같이 생기는군요.
테스트단축키는 Alt + Shift + E, F입니다....-_- 해당 편집파일에서 누르면 됩니다.
사용자 삽입 이미지
테스트 결과는 Junit처럼 이렇게 보여줍니다.
사용자 삽입 이미지
Junit이랑 똑같네.

5. 테스트 Suite 생성
이건 테스트를 다 모아서 실행하는 건데, 통합테스트를 할 때 사용하는 듯-_-
New -> Test Suite Class -> New FlesxxUnit4 test 하면 include할 테스트를 패키지에서 선택할 수 있습니다. 선택 후 Finish.
SuiteTest.as
[code]package flexUnitTests
{
    import flexUnitTests.CalcSecondTest;
    import flexUnitTests.CalcTest;
   
    [Suite]
    [RunWith("org.flexunit.runners.Suite")]
    public class SuiteTest
    {
       
        public var test1:flexUnitTests.CalcSecondTest;
        public var test2:flexUnitTests.CalcTest;
    }
}[/code]
그냥 저렇게 선언해두고, 오른쪽버튼 눌러서 "Execute FlexUnit Tests" or 알트 + 쉬프트 + E, F하면 통합테스트를 합니다.

6. 그외의 기능
저도 더 써봐야 알 것 같은데, Flex는 이벤트기반이다보니 Async와 UI구조가 많은데요. Async구조도 손쉽게 테스트를 할 수 있습니다.
[code][Test(async,ui)][/code]
이런식으로 하면 될 듯 한데, 안해봐서 잘 모르겠네요-_-

참고자료
http://www.insideria.com/2009/05/flashbuilder4-will-support-fle.html
http://balajisridhar.wordpress.com/2009/10/05/flexunit-integration-in-flash-builders-new-awatar-in-beta2/
 
Posted by 머드초보
,