FlexUnit: Flex/ActionScript3.0アプリケーションの単体テストを行うためのユニットテスティングフレームワーク

機能系のライブラリ、関数を作成するとき、何の開発言語を言わせず、単体テストはとても重要ですね。JavaならJUnitというツールがあり、C++だったらCPPUnitというものがあります。では、Flex/ActionScriptはどうでしょうか。ふー、今回紹介する「FlexUnit」です。

「FlexUnit」(Googleプロジェクト名:as3flexunitlib)とは、名前の通り、Flex/ActionScript3.0アプリケーションの単体テストを行うためのユニットテスティングフレームワークです。テスト結果は、FlexのGUIで確認することができます。

機能・特徴

・JUnitと似たような実装手法提供
・テスト結果をGUIで確認できる
・オープンソース。BSDライセンス

テストケースの書き方

提供されている、FlexUnit.swcにはflexunit.framework.TestCaseというクラスが含まれています。
このクラスを継承してTestCaseを作成していきます。テストメソッドは、メソッド名が testから始まる名前にすることで反応します。基本的はJUnitやCppUnitと同じですよね。

1)、環境構築

以下のURLでFlexUnitをダウンロードします。

http://opensource.adobe.com/wiki/display/flexunit/Downloads

2)、Flexアプリケーションで『FlexUnitSample』プロジェクトを作成。

3)、プロジェクトにライブラリパスに『glexunit.swc』を追加する。

4)、クラス作成
①、『FlexUnitSample』プロジェクトTemperatureConverter.asを追加する。

package {
  public class TemperatureConverter {
    public static function toFahrenheit(celsius:Number):Number {
      return (9 / 5) * celsius + 32;
    }
    public static function toCelsius(fahrenheit:Number):Number {
      return (5 / 9) * (fahrenheit – 32);
    }
  }
}


②、『FlexUnitSample』プロジェクトTemperatureConverter.asを追加する。

package {
  import flexunit.framework.TestCase;
  import flexunit.framework.TestSuite;
  public class TemperatureConverterTest extends TestCase {
    public function TemperatureConverterTest(methodName:String) {
      super(methodName);
    }
    public static function suite():TestSuite {
      var suite:TestSuite = new TestSuite();
      suite.addTest(new TemperatureConverterTest(”testToFahrenheit”));
      suite.addTest(new TemperatureConverterTest(”testToCelsius”));
      return suite;
    }
    public function testToFahrenheit():void {
      var celsius:Number = 100;
      var fahrenheit:Number = TemperatureConverter.toFahrenheit(celsius);
      assertEquals(”Expecting 212 fahrenheit”, 212, fahrenheit);
      celsius = 0;
      fahrenheit = TemperatureConverter.toFahrenheit(celsius);
      assertEquals(”Expecting 32 fahrenheit”, 32, fahrenheit);
    }
    public function testToCelsius():void {
      var fahrenheit:Number = 212;
      var celsius:Number = TemperatureConverter.toCelsius(fahrenheit);
      assertEquals(”Expecting 100 celsius”, 100, celsius);
      fahrenheit = 32;
      celsius = TemperatureConverter.toCelsius(fahrenheit);
      assertEquals(”Expecting 0 celsius”, 0, celsius);
    }
  }
}

③、『FlexUnitSample』プロジェクトsample_test.mxmlを追加する。



 
     

 


5)、テスト実行
1.sample_test.mxmlをデフォルトアプリケーションに設定して実行する。
2.テスト結果が表示されることを確認する。(以下の画像はhttp://ntt.cc からのです)

clip-image009

関連リンク
http://opensource.adobe.com/wiki/display/flexunit/FlexUnit 公式サイト
http://ntt.cc/2008/08/12/how-to-use-flexunit-in-flex.html 初心者向け

Leave a Reply

Your email address will not be published. Required fields are marked *