레이블이 Unit Testing인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Unit Testing인 게시물을 표시합니다. 모든 게시물 표시

2010년 1월 25일 월요일

유닛테스트 코드 커버리지 수치 높이기

Coverage 20%에서 80% 올리기는 쉬웠는데 오늘 테스트 추가하고 전체 커버리지 확인하니까 83%다. ㅎ

2010년 1월 15일 금요일

FlexUnit 4 비동기 테스트 방법

FlexUnit 4에서 비동기 테스트 방법

 

[Test(async, description="Async Example")]
public function testTimerLongWay():void
{
 var asyncHandler:Function = Async.asyncHandler(this, handleTimerComplete, 500, null, handleTimeout);
 timer.addEventListener(TimerEvent.TIMER_COMPLETE, asyncHandler, false, 0, true);
 timer.start();  
}

 

protected function handleTimerComplete(event:TimerEvent, passThroughData:Object):void
{

}

 

protected function handleTimeout(passThroughData:Object):void
{

}

 

1. Tag에 async를 준다.
2. Async.asyncHandler를 통해 비동기 핸들러를 만든다.
2.1. this - listener 클래스를 지정한다.
2.2. handleTimerComplete - timer에서 TIMER_COMPLETE 이벤트가 발생했을 때 처리 될 이벤트 핸들러.
2.3. 500 - 대기시간을 넣는다. 이 시간이 초과하면 handleTimerout 이벤트 핸들러가 실행, 테스트는 실패.
2.4. null -  대신 어떤 값을 넣으면 handlerTimerComplete의 두 번째 인자로 넘어온다.
2.5. handleTimeout - 앞서 설명한 것처럼 테스트 타임아웃 시에 호출되는 펑션.
3. timer.addEventListener에서 Async.asyncHandler를 통해 생성한 핸들러를 넣는다.

 

위처럼 하면 된다.

 

위의 예에서 이벤트가 발생하면 handleTimerComplete가 호출되고

 

Assert를 사용하여 테스트를 시작하면 된다.

2009년 6월 8일 월요일

flexunit으로 event 테스트하기

1. 테스터를 만들때 TestCase 대신 EventfulTestCase를 상속받는다.

2. listenForEvent(이벤트Dispatcher, 이벤트타입, 발생할 것으로 예상하면 true 아니면 false);

3. dispatchEvent()

4. assertEvents(); 하면 2번에서 기대한 이벤트가 3번을 통해 발생됐는지 확인된다. 만약 2번에서 3번째 인자를 false로 했는데 이벤트가 감지되면 테스트가 실패한다.

 

연습삼아 해봤다. 별로 쓸모 없지만 custom event 자체를 테스트 해보려고 EventfulTestCase에서 IEventDispatcher를 구현하고 필요한 메소드들을 오버라이드 했다. 이벤트 발생시 이벤트를 통해 넘어온 값들을 바꾸고 테스트 쪽에서 해당 값이 잘 들어왔는지 assertEquals 테스트도 해봤다.

프로젝트 진행 상황

헤헤.

2009년 6월 7일 일요일

TDD는 Unit Test가 아니다

내가 테스트를 만들고 있기는 한데 TDD는 아니라는 생각이 들어 그 차이가 무엇인지 짚어본 사람이 있을까 있어 찾아봤다. http://stephenwalther.com/blog/archive/2009/04/11/tdd-tests-are-not-unit-tests.aspx

2009년 6월 4일 목요일

Flex UI Testing

flexmonkey라는 툴이 있는데 사용자가 flex상에서 한 행동들을 레코딩 해서 다시 플레이 하는 형태의 테스트를 제공한다.