FlexUnit 4.xの機能(パート1)

FlexUnit機能投稿、オリジナル: www.flexunit.org/?page_id=6



[2014年25月14日] すべてのドキュメントがここにあります: cwiki.apache.org/confluence/display/FLEX/FlexUnit



各機能について、使用可能なFlexUnitのバージョンが示されています。



FlexまたはActionScript 3(4.0)


FlexUnitは、Flexとアクションスクリプトの両方で使用できます。 Flexプロジェクトをテストしている場合、使用しているFlexのバージョンに適したFlexUnitを見つけることができます。 Action ScriptのFlexUnitアセンブリに関しては、Action Script 3プロジェクトで動作します。







メタデータ-テスト(4.0)


テストには、[Test]という名前のメタデータタグを使用してフラグが付けられます。 これで、テストに特別な表記(テストプレフィックスなど)を使用する必要がなくなりました。 さらに、テストクラスとスイートクラスを定義する必要がなくなりました。 クラスはフレームワーククラスを継承しなくなります。 以下は、いくつかのサンプルテストです。



[Test] public function addition():void { assertEquals(12, simpleMath.add(7, 5)); } [Test] public function subtraction():void { assertEquals(9, simpleMath.subtract(12, 3)); }
      
      







テストクラスはFlexUnitからクラスを継承しないようになったため、過去に使用したアサート関数(assertEquals、assertTrue)がAssertクラスの静的関数として実装されていることに気付くでしょう。



前後(4.0)


場合によっては、テスト用のテスト環境(またはデバイス)をセットアップする必要があります。 上記の例では、テストを実行する前にsimpleMathへの参照が存在することを確認する必要があります。 FlexUnitおよびFluintの以前のバージョンでは、この目的を達成するためにsetup()およびteardown()メソッドをオーバーライドできました。 FlexUnit 4には、同様の問題を解決するBeforeおよびAfterメタデータが含まれています。 Beforeタグでマークされたメソッドは、各テストメソッドの前に実行されます。 Afterでタグ付けされたメソッドは、各テストメソッドの後に起動されます。 これは、テストの前後に多くのメソッドを実行できることを意味します。



 [Before] public function runBeforeEveryTest():void { simpleMath = new SimpleMath(); } [Before] public function alsoRunBeforeEveryTest():void { simpleMath1 = new SimpleMath(); } [After] public function runAfterEveryTest():void { simpleMath = null; simpleMath1 = null; }
      
      







前後に多くのメソッドを使用する場合、orderパラメーターを使用してメソッドの実行順序を制御できます。 たとえば、[Before(order = 1)]、[Before(order = 2)]。



BeforeClassおよびAfterClass(4.0)


BeforeおよびAfterでマークされたメソッドは、各テストメソッドの開始の前後に実行されます。 BeforeClassおよびAfterClassを使用すると、テストクラスのすべてのテストメソッドを実行する前後に実行される静的メソッドを定義できます。 BeforeおよびAfterと同様に、orderパラメーターを使用して、BeforeClassおよびAfterClassメソッドの実行順序を決定できます。



 [BeforeClass] public static function runBeforeClass():void { //run for one time before all test cases } [AfterClass] public static function runAfterClass():void { // run for one time after all test cases }
      
      







例外処理(4.0)


テストメタデータタグにexpectパラメーターを指定することもできます。 expectsパラメーターは、このテストが例外をスローすることを示します。 テストが指定された名前の例外をスローする場合、これは成功と見なされ、そうでない場合は失敗と見なされます。 これにより、テストを記述するときに空のcatchを持つtryブロックからラッパーを使用する必要がなくなります。



 [Test(expects="flash.errors.IOError")] public function doIOError():void { //a test which causes an IOError }  [Test(expects="TypeError")] public function divisionWithException():void { simpleMath.divide( 11, 0 ); }
      
      







無視(4.0)


無視するテストの前に、メタデータタグを無視するタグを追加できます。 また、テストが無視される理由を示す行を追加することもできます。 コメントとは異なり、これらの行は常に表示され、対応するメソッドを修正または変更する必要があることを思い出させます。



 [Ignore("Not Ready to Run")] [Test] public function multiplication():void { assertEquals(15, simpleMath.multiply(3, 5)); }
      
      







非同期(4.0)


FlexUnitの以前のバージョンでは、多くの非同期イベントがあり、イベント駆動型のコードをテストすることは非常に困難でしたが、完全に非同期ではありませんでした。

Fluintでは、非同期のサポートが優れており、非同期を使用できますが、実行されるテストごとに、非同期コードの実行を保証するために追加機能がハングアップします。

開発者はFlexUnit 4を使用して、非同期パラメーターを使用して非同期が必要なテストを決定できます。

asyncパラメーターは、同様のテストのFluintと同じ、完全な非同期サポートを提供します。 asyncパラメーターに加えて、メソッドのタイムアウトを定義できます。



 [Before(async,timeout="250")] public function setMeUp():void { } [After(async,timeout="250")] public function allDone():void { } [Test(async,timeout="500")] public function doSomethingAsynchronous():void { //Async.proceedOnEvent( testCase, target, eventName ); //Async.failOnEvent( testCase, target, eventName ); //Async.handleEvent( testCase, target, eventName, eventHandler ); //Async.asyncHandler( testCase, eventHandler ); //Async.asyncResponder( testCase, responder ); }
      
      






All Articles