ASUnit

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

ASUnit ドキュメント

ASUnitはActionScript?2とActionScript?3共通で使える、ユニットテストフレームワークです。JUnit3.8をベースに作られているので、誰でも簡単に使い始めることが出来ます。

このドキュメントは書きかけです。ASDocも併せてご覧下さい。

テストの作成

テストクラス

テストクラスを作成するには、TestCase?を継承したクラスを作成してください。

import org.libspark.asunit.framewrok.TestCase;

public class SampleTest extends TestCase
{
}

テストメソッド

テストメソッドは「test」で始まるメソッド名を付けてください。これで、そのメソッドがテストメソッドとして自動で呼び出されます。

メソッドは引数なし、voidである必要があります。

import org.libspark.asunit.framewrok.TestCase;

public class SampleTest extends TestCase
{
    public function testSample1():void
    {
    }
    
    public function testSample2():void
    {
    }
}

アサート

お馴染みのアサートは、TestCase?クラスに実装されていますので、そのまま使うことが出来ます。

import org.libspark.asunit.framewrok.TestCase;

public class SampleTest extends TestCase
{
    public function testSample1():void
    {
        var s:Sample = new Sample();
        assertTrue(s.f());
    }
    
    public function testSample2():void
    {
        var s:Sample = new Sample();
        assertEquals("hello", s.h());
    }
}

setUp

「setUp」メソッドは、各テストメソッドが呼び出される前に毎回必ず呼び出されます。フィクスチャのセットアップをする必要がある場合などに使ってください。

import org.libspark.asunit.framewrok.TestCase;

public class SampleTest extends TestCase
{
    private var s:Sample;
    
    protected override function setUp():void
    {
        s = new Sample();
    }
    
    public function testSample1():void
    {
        assertTrue(s.f());
    }
    
    public function testSample2():void
    {
        assertEquals("hello", s.h());
    }
}

tearDown

「tearDown」メソッドは、各テストメソッドが呼び出された後に毎回必ず呼び出されます。フィクスチャの終了処理をする必要がある場合などに使ってください。

import org.libspark.asunit.framewrok.TestCase;

public class SampleTest extends TestCase
{
    private var s:Sample;
    
    protected override function setUp():void
    {
        s = new Sample();
    }
    
    protected override function tearDown():void
    {
        s.finalize();
    }
    
    public function testSample1():void
    {
        assertTrue(s.f());
    }
    
    public function testSample2():void
    {
        assertEquals("hello", s.h());
    }
}

テストスイート

複数のテストをひとまとめにするために、テストスイートを作ることが出来ます。次のようなクラスを作り、suite.addTestSuiteメソッドでテストを追加するのが一般的です。

このテストスイートを使用するときは、AllTests?.suite()を呼び出してテストを取得します。

import org.libspark.asunit.framework.*;

public class AllTests
{
    static public function suite():Test
    {
        var suite:TestSuite = new TestSuite(null, "Sample Tests");
        suite.addTestSuite(SampleTest);
        suite.addTestSuite(HogeTest);
        suite.addTestSuite(FugaTest);
        return suite;
    }
}

テストスイートを入れ子にすることも勿論可能です。その時には、suite.addTestメソッドでスイートを追加します。

import org.libspark.asunit.framework.*;

public class SuiteTests
{
    static public function suite():Test
    {
        var suite:TestSuite = new TestSuite(null, "Sample Tests");
        suite.addTest(AllTests.suite());
        return suite;
    }
}

テストの実行

テストを実行するには、TestRunner?クラスを使用します。runメソッドを、テスト対象のクラスのインスタンスか、テストスイートを引数として呼び出すと、結果がtraceされます。

import org.libspark.asunit.textui.TestRunner;

...

// testSample1メソッドのテスト
TestRunner.run(new SampleTest("testSample1"));
import org.libspark.asunit.textui.TestRunner;

...

// テストスイートのテスト
TestRunner.run(AllTests.suite());