AS3Unit (English is here)

ソースコード / ライセンス / ドキュメント / ASDoc

AS3Unit

AS3UnitはActionScript?3.0上で単体テストを行うためのフレームワークで、JUnit4の移植です。ActionScript?3.0の新機能であるネームスペースを用いる事で、POJOによるテストケースの記述を可能にしました。

AS3Unitを用いる事で、効率よくテスト駆動開発を行うことが出来るようになります。

最新情報

  • 2008.04.23 AS3Unit for Async 1.2 をリリースしました。
  • 2008.04.15 AS3Unit 1.2 FlexSDK3 対応版をリリースしました。
  • 2007.09.17 AS3Unit 1.2 をリリースしました。リリースノートはこちら
  • 2007.04.04 AS3Unit 1.2-beta1 をリリースしました。リリースノートはこちら
  • 2006.05.09 AS3Unit 1.01 をリリースしました。

ダウンロード

AS3Unit 安定版

AS3Unit for Async (beta)

過去のバージョン

導入方法

Flex Builder の場合

  1. Flex Builder上で、AS3Unitを使用したいプロジェクトを開くか、作成します。
  2. プロジェクトのプロパティを表示し、「ActionScript? ビルドパス」内の「ライブラリパス」タブを開きます。
  3. 「SWCの追加」をクリックし、表示されたダイアログ内で、ダウンロードした「as3unit-xxx.swc」(xxxはバージョン)を指定して追加します。
  4. 「OK」を押して設定を保存すれば完了です。これでAS3Unit(org.libspark.as3unitパッケージ)が使えるようになります。

FlashCS3 の場合

  1. Adobe Extension Manager のインストールが済んでいない場合、インストールします。
  2. 使用しているOSにあわせて、「as3unit-1.2-win.mxp」または「as3unit-1.2-mac.mxp」をダウンロードします。
  3. ダウンロードしたmxpを実行します。この時、FlashCS3のConfigurationディレクトリの場所(標準でWindowsは「C: /Program Files/Adobe/Adobe Flash CS3/ja/Configuration」Macは「/Applications/Adobe Flash CS3/Configuration」です)を聞かれますので選択してください。
  4. インストールが無事完了すれば、FlashCS3でAS3Unit(org.libspark.as3unitパッケージ)が使えるようになります。

AS3Unit コンポーネント

AS3Unit 1.2 から、Flex用のAS3Unitコンポーネントが追加されました。これを使用すると、AS3Unit GUIを使用しなくても、グラフィカルに結果を表示出来ます。

AS3Unitコンポーネントを使用するには、次のようなFlexアプリケーションを作成します。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
	xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns:as3unit="org.libspark.as3unit.components.*"
	layout="absolute"
	creationComplete="creationCompleteHandler()">
	
	<mx:Script>
		<![CDATA[
			import your.domain.AllTests
			
			private function creationCompleteHandler():void
			{
				as3unit.run(AllTests);
			}
		]]>
	</mx:Script>
	
	<as3unit:AS3Unit id="as3unit"/>
	
</mx:Application>

org.libspark.as3unit.components.*をターゲットとしたネームスペースを作成し、それを利用してAS3Unitコンポーネントを配置してください。後は、AS3UnitCore(ファーストステップ参照)を利用するのと同じように、AS3UnitコンポーネントのrunメソッドをcreationCompleteイベントハンドラ内で呼び出してください。これで、 AS3Unitコンポーネント内にグラフィカルに結果が表示されます。

AS3Unit GUI

AS3Unit GUIはAdobe AIRによって作成されています。使い方はwikiをご覧下さい。

  1. AIRランタイムのインストールが済んでいない場合、インストールします。
  2. ダウンロードした「as3unit-xxx-gui.air」を実行し、指示に従ってインストールします。
  3. インストールが完了すると、AS3Unit GUIが利用可能になります。

使い方はこちら

必要な環境

ファーストステップ

ファーストステップでは、引数の値を合計して返すCalculator#addメソッドをAS3Unitを用いたテスト駆動で実装する手順を紹介します。

テストを作ります。テストメソッドはtestネームスペースで修飾し、assertを使用して値のチェックをします。

package
{
    import org.libspark.as3unit.test;
    import org.libspark.as3unit.assert.assertEquals;
    
    use namespace test;
    
    public class CalculatorTest
    {
        test function add():void
        {
            var calc:Calculator = new Calculator();
            assertEquals(3, calc.add(1, 2));
        }
    }
}

テスト対象のクラスを作ります。

package
{
    public class Calculator
    {
        public function add(a:Number, b:Number):Number
        {
            return 0;
        }
    }
}

テストを実行するためのメインクラスを作ります。

package
{
    import flash.display.Sprite;
    import org.libspark.as3unit.runner.AS3UnitCore;
    
    public class Main extends Sprite
    {
        public function Main()
        {
            AS3UnitCore.main(CalculatorTest);
        }
    }
}

テストを実行し、失敗する事を確認します。

.E
Time: 0.031
There was 1 failure:
1) add(CalculatorTest)
Error: expected:<3> but was:<0>
	at ...

FAILURES!!!!
Tests run: 1, Failure: 1

テストが通るように実装をします。

package
{
    public class Calculator
    {
        public function add(a:Number, b:Number):Number
        {
            return a + b;
        }
    }
}

再度テストを実行し、成功する事を確認します。

.
Time: 0.006

OK (1 test)

更に詳しい使い方はドキュメントをご覧下さい。