Dieser Artikel zeigt an einem kurzen Beispiel, wie FlexUnit verwendet wird. FlexUnit ist eine Open Source Bibliothek von Adobe für Unittests.
FlexUnit is a unit testing framework for Flex and ActionScript 3.0 applications and libraries. It mimics the functionality of JUnit, a Java unit testing framework, and comes with a graphical test runner.
Das Unittest-Prinzip und eine Lösung für reine ActionScript-Projekte hatte ich bereits mit AsUnit hier im Blog vorgestellt, siehe AsUnit: Unittests in ActionScript 3. Die Vorgehensweise ist stark ähnlich, deshalb habe ich das Beispiel aus dem AsUnit-Artikel nun mit FlexUnit nachgebaut.
Die zu testende Klasse
Zuallererst wählt man eine vorhandene Klasse, deren Funktionalität getestet werden soll.
[as]
package {
public class Calculator {
public var offset:Number;
public function Calculator():void {
offset = 0;
}
public function addNumbers(a:Number, b:Number):Number {
return a + b + offset;
}
}
}
[/as]
TestCase festlegen
Danach erstellt man eine Testklasse (vom Typ TestCase
), die die einzelnen Tests enthält. Wie man sieht, wird z.B. mit assertTrue("...", calculator.addNumbers(10, 5) == 15)
geprüft, ob das Ergebnis der Addition (10+5) die Zahl 15 ist.
[as]
package {
import flexunit.framework.TestCase;
public class CalculatorTest extends TestCase {
public function testAddNumbers():void {
var calculator:Calculator = new Calculator();
assertTrue(„Testen von addNumbers mit 10 und 5“, calculator.addNumbers(10, 5) == 15);
calculator.offset = 5;
assertTrue(„Testen von addNumbers mit 10 und 5 (Offset 5)“, calculator.addNumbers(10, 5) == 20)
}
}
}
[/as]
Tests durchführen
Zuletzt benötigt man noch eine Hauptanwendung, die den TestCase
zu einer TestSuite
hinzufügt. Diese TestSuite
kann nun mittels einer TestRunnerBase
ausgeführt werden.
[xml]
[/xml]
Testergebnisse
Liefert der Testcase nicht das gewünschte Ergebnis zurück, werden entsprechende Fehlermeldungen in der Flexanwendung aufgeführt.
Läuft alles nach Plan, erscheint ein grünes Häkchen und die Klasse funktioniert wie gewünscht.
Link: FlexUnit
Link: FlexUnit Cookbooks
Link: AsUnit: Unittests in ActionScript 3
[ad]
Ergänzend hier ein interessanter Link zum Beitrag „5 Tips For Flash Unit Testing” von InsideRIA:
http://www.insideria.com/2009/11/5-tips-for-flash-tdd.html