機能系のライブラリ、関数を作成するとき、何の開発言語を言わせず、単体テストはとても重要ですね。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を追加する。
- <?xml version=”1.0″ encoding=”utf-8″?>
- <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” xmlns=”*”
- xmlns:flexunit=”flexunit.flexui.*”
- creationComplete=”onCreationComplete()”>
- <mx:Script>
- <![CDATA[
- import flexunit.framework.TestSuite;
- private function onCreationComplete():void {
- testRunner.test = createSuite();
- testRunner.startTest();
- }
- private function createSuite():TestSuite {
- var suite:TestSuite = new TestSuite();
- suite.addTest(TemperatureConverterTest.suite());
- return suite;
- }
- ]]>
- </mx:Script>
- <flexunit:TestRunnerBase id=”testRunner” width=”100%” height=”100%” />
- </mx:Application>
5)、テスト実行
1.sample_test.mxmlをデフォルトアプリケーションに設定して実行する。
2.テスト結果が表示されることを確認する。(以下の画像はhttp://ntt.cc からのです)
関連リンク
http://opensource.adobe.com/wiki/display/flexunit/FlexUnit 公式サイト
http://ntt.cc/2008/08/12/how-to-use-flexunit-in-flex.html 初心者向け
Posted on Thursday, 7th May 2009 by admin
Tags: ActionScript, Flash, Flex, FlexUnit, フレームワーク
Posted in Flash, Flash Project, Flex | Comments (0) | 4,592 views
