Created
September 26, 2013 04:03
-
-
Save snaka/6709746 to your computer and use it in GitHub Desktop.
FlexUnit4 の SequenceRunner を使用したテストを簡潔に記述するためのユーティリティクラスと関数
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import flash.events.Event; | |
| import flash.events.EventDispatcher; | |
| import flash.events.IEventDispatcher; | |
| import org.flexunit.asserts.fail; | |
| import org.fluint.sequence.ISequenceStep; | |
| import org.fluint.sequence.SequenceCaller; | |
| import org.fluint.sequence.SequenceDelay; | |
| import org.fluint.sequence.SequenceEventDispatcher; | |
| import org.fluint.sequence.SequenceRunner; | |
| import org.fluint.sequence.SequenceWaiter; | |
| /** | |
| * FluentableSequenceRunner インスタンスを生成するユーティリティ関数 | |
| */ | |
| function sequence( testCase:* ):SimplifiedSequenceRunner | |
| { | |
| return new SimplifiedSequenceRunner( testCase ); | |
| } | |
| /** | |
| * SequenceWaiter インスタンスを生成するユーティリティ関数 | |
| */ | |
| function waitEvent( target:IEventDispatcher, eventName:String ):ISequenceStep | |
| { | |
| return new SequenceWaiter( target, eventName, 3000, function( obj:Object ):void { | |
| fail( "Timeout Occurred before expected event (" + eventName + ")" ); | |
| } ); | |
| } | |
| /** | |
| * SequenceWaiter インスタンスを生成するユーティリティ関数 | |
| */ | |
| function dispatchEvent( target:EventDispatcher, event:Event ):ISequenceStep | |
| { | |
| return new SequenceEventDispatcher( target, event ); | |
| } | |
| /** | |
| * SequenceDelay インスタンスを生成するユーティリティ関数 | |
| */ | |
| function delay( milliSec:int ):ISequenceStep | |
| { | |
| return new SequenceDelay( milliSec ); | |
| } | |
| /** | |
| * SequenceCaller インスタンスを生成するユーティリティ関数 | |
| */ | |
| function call( target:IEventDispatcher, procedure:Function ):ISequenceStep | |
| { | |
| return new SequenceCaller( target, procedure ); | |
| } | |
| /** | |
| * SequenceRunner を使用したテストを簡潔に記述するためのユーティリティクラス | |
| */ | |
| class SimplifiedSequenceRunner | |
| { | |
| private var runner:SequenceRunner; | |
| /** | |
| * コンストラクタ | |
| */ | |
| public function SimplifiedSequenceRunner( testCase:* ) | |
| { | |
| runner = new SequenceRunner( testCase ); | |
| } | |
| /** | |
| * SequenceStep の追加 | |
| */ | |
| public function steps( ...args ):SimplifiedSequenceRunner | |
| { | |
| for each ( var step:ISequenceStep in args ) | |
| runner.addStep( step ); | |
| return this; | |
| } | |
| /** | |
| * AssertHandler の追加 | |
| */ | |
| public function assertion( assertFunc:Function ):SimplifiedSequenceRunner | |
| { | |
| runner.addAssertHandler( function( evt:Event, obj:Object ):void { | |
| assertFunc(); | |
| }, null ); | |
| return this; | |
| } | |
| /** | |
| * SequenceRunner の実行 | |
| */ | |
| public function run():void | |
| { | |
| runner.run(); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment