すべて
このチュートリアルでは、Flash Builder 4で新たに追加されたFlexUnitテスト統合について紹介します。
Flash Builder 4は、FlexUnitのバージョンを指定することが可能ですが、このチュートリアルでは、FlexUnit 4を利用します。
ユニットテスト(単体テスト)は、ソフトウェアの品質を保つために重要性が高いものになっています。そのためにFlexやActionScript用のユニットテストフレームワークとして、FlexUnit 4がhttp://docs.flexunit.orgで公開されています。
FlexUnit 4は、Javaのユニットテストフレームワークとして有名な「JUnit 4」ライクなメタデータを使ったテストクラスの作成に対応しています。また、非同期処理のテストにも対応しているので、外部連携やイベントに対するテストを柔軟に記述できます。
Flash Builder 4は、FlexUnitテストの作成や実行や共有を容易に行えるように次のような新しい機能があります。
テストケースは、次の手順で作成できます。FlexUnit 4テストを作成して実行するプロジェクトがFlash Builder 4で既に作成されているものと仮定しています。
1) プロジェクト名をクリックします。
2) メニューの[File] > [New] > [テストケースクラス]をクリックします。
または、プロジェクトや既存のファイルのコンテキストメニューの[New] > [テストケースクラス]をクリックします。[テストケースクラス]をクリックすると[新規テストケースクラス]ウィザードが始まります。
3) [新規テストケースクラス]ウィザードの最初の画面では、FlexUnitのバージョン選択とテストケースクラスのソースフォルダとパッケージと名前を入力します。また、テストするクラスがない場合は、[Finish]ボタンを押下してウィザードを終了し、テストケースクラスを作成します。
SimpleTest.as:生成されたテストケースクラス。このクラスにテストコードを書いていきます。
package flexUnitTests
{
public class SimpleTest
{
[Before]
public function setUp():void
{
}
[After]
public function tearDown():void
{
}
[BeforeClass]
public static function setUpBeforeClass():void
{
}
[AfterClass]
public static function tearDownAfterClass():void
{
}
}
}
次に、テストするクラスがある場合は、[テストするクラスを選択]をチェックして参照からテストするクラスを選びます。または、2)でActionScriptやMXMLのコンテキストメニューから[新規テストケースクラス]ウィザードをはじめた場合は、そのクラスが、テストするクラスになります。
4)テストするクラスを選択した場合は、[Next]を押下して、テストするメソッドを選択します。
最後に[Finish]ボタンを押下してウィザードを終了し、テストケースクラスが生成されます。
AdditionLogicTest.as:生成されたテストケースクラス。このクラスにテストコードを書いていきます。
package sampele.logic
{
import flexunit.framework.Assert;
public class AdditionLogicTest
{
[Before]
public function setUp():void
{
}
[After]
public function tearDown():void
{
}
[BeforeClass]
public static function setUpBeforeClass():void
{
}
[AfterClass]
public static function tearDownAfterClass():void
{
}
[Test]
public function testAdd():void
{
Assert.fail("Test method Not yet implemented");
}
}
}
テストスイートとは、テストケースクラスとそれらのクラスに指定されたメソッドおよびその他のテストケーススイートを利用した一連のテストを定義したクラスです。
テストスイートは、次の手順で作成できます。FlexUnit 4テストを作成して実行するプロジェクトが既にあり、テストケースクラスが作成されているものと仮定しています。
1) プロジェクトをクリックします。
2) メニューの[File] > [New] > [テストスイートクラス]をクリックします。
または、プロジェクトや既存のファイルのコンテキストメニューの[New] > [テストスイートクラス]をクリックします。[テストスイートクラス]をクリックすると[新規テストスイートクラス]ウィザードが始まります。
3) [新規テストスイートクラス]ウィザードの画面では、FlexUnitのバージョン選択とテストスイートクラスのソースフォルダとパッケージと名前を入力します。そして、スイートに含めるテストクラスとメソッドを選択します。最後に[Finish]ボタンを押下してウィザードを終了し、テストスイートクラスを作成します。
CalculationAllTest.as:生成されたテストスイートクラス
package sampele.logic
{
import sampele.logic.AdditionLogicTest;
import sampele.logic.SubtractionLogicTest;
[Suite]
[RunWith("org.flexunit.runners.Suite")]
public class CalculationAllTest
{
public var test1:sampele.logic.AdditionLogicTest;
public var test2:sampele.logic.SubtractionLogicTest;
}
}
FlexUnit 4のテストケースやテストスイートは、次のような手順で実行します。いずれの場合でも、テストの結果は FlexUnit の結果ビューに表示されます。
・テストケースクラスを実行する場合
テストするテストケースクラスのコンテキストメニューの[FlexUnitテストの実行]をクリックします。
・テストスイートを実行する場合
テストするテストケースクラスのコンテキストメニューの[FlexUnitテストの実行]をクリックします。
・FlexUnit結果ビューからの実行
一度実行したテストは、FlexUnit結果ビューのメニューから再度実行できます。
FlexUnitテストを実行したテスト結果は、FlexUnit結果ビューに表示されます。FlexUnit 結果ビューには、テスト結果パネル(左)とテスト失敗の詳細パネル(右)で構成されています。
テスト結果パネルには、テストで実行されたすべてのテストがリストされて、成功したか失敗したかが示されます。リスト内のテストをダブルクリックすると、ActionScript エディターでそのテストに移動できます。
テスト失敗の詳細パネルには、テスト結果パネルでテストを選択した失敗の詳細を表示します。
失敗の詳細の各リストには、失敗した行番号などとともに、ソースファイルとメソッドが表示されます。
ソースファイルが作業用スペースのローカルファイルであれば、リストをダブルクリックすると、ActionScript エディター内の失敗した場所へ移動します。
・テスト結果パネルの表示フィルター
テスト結果が失敗のみを表示することが出来ます。
・テスト設定のファイルへの書き込みと読み込み
書き込みするには、右端の▽をクリックして、[保存]>[設定を保存]をクリックします。
読み込みするには、[テストを実行]のボタンメニュー▼を開いて、[FlexUnitテストを実行]をクリックして、[FlexUnitテストを実行]ダイアログを表示します。
そして、[読み込み]ボタンをクリックしてファイルダイアログで設定ファイルを指定して読み込みます。また、このダイアログでは、実行したいテストをカスタマイズすることができ、それを保存と読み込みすることもできます。
・テスト結果のファイルへの書き込みと読み込み
書き込みするには、右端の▽をクリックして、[保存]>[結果を保存]をクリックします。
読み込みするには、右端の▽をクリックして、[保存済みの結果を開く]をクリックし、ファイルダイアログで結果ファイルを選択します。
今回のチュートリアルでは、FlexUnit 4とFlash Builder 4で新たに追加されたFlexUnitテスト統合について紹介しました。Flash Builder 4とFlexUnit が統合したことで、FlexとActionScriptのコードに対して、FlexUnitテストの作成や実行や共有し易くなったことに気づけたと思います。そして、Flash Builder 4では、反復テストが容易に行えるので品質の向上かつ生産性の向上にもつながると思います。
また、FlexUnit 4についての詳しい機能については、http://docs.flexunit.org/を参照して下さい。