最近学习flex,本人是从C/S架构过来的,用起来有很多的熟悉感,为了公司后续的开发工作顺利开展,了解了flex单元测试,感觉还是很不错的,费话不说了,过程如下:
1.下载FlexUnit 0.9
http://opensource.adobe.com/wiki/display/flexunit/Downloads
2.解压后有两个目录,asDoc是API文档,Bin是SWC库
3.新建项目,如下图设定,按“Finish”新建项目
4.右键项目TestFlexUnit->Properties->Flex Build Path,点击“Add Swc…”,加入flexUnit的swc包。
5.新建一个需要测试的业务逻辑类(ActionScript类),例下:
- package
- {
-
public class Arithmetic
- {
-
-
-
-
-
public static function add(a:Number,b:Number):Number{
-
return a + b;
- }
-
-
-
-
-
-
public static function subtract(a:Number,b:Number):Number{
-
return a - b;
- }
- }
- }
package
{
public class Arithmetic
{
/**
* 加法
* author:LiuYX
*/
public static function add(a:Number,b:Number):Number{
return a + b;
}
/**
* 减法
* author:LiuYX
*/
public static function subtract(a:Number,b:Number):Number{
return a - b;
}
}
}
6.继承FlexUnit的TestCase类,新建测试业务的ArithmeticTest类,如下:
- package
- {
-
import flexunit.framework.TestCase;
-
import flexunit.framework.TestSuite;
-
-
public class ArithmeticTest extends TestCase
- {
-
-
-
-
-
-
public function ArithmeticTest(methodName:String)
- {
-
-
super(methodName);
- }
-
-
-
-
-
-
-
public static function Suite():TestSuite{
-
var suite:TestSuite = new TestSuite();
-
-
suite.addTest(new ArithmeticTest("testAdd"));
-
suite.addTest(new ArithmeticTest("testSubtract"));
-
-
return suite;
-
- }
-
-
-
-
-
-
-
public function testAdd():void{
-
var result:Number = 0;
-
-
result = Arithmetic.add(1,2);
-
assertTrue("和为 3",result == 3);
-
-
result = Arithmetic.add(2,2);
-
assertEquals("和为 4",4,result);
- }
-
-
-
-
-
-
-
public function testSubtract():void{
-
var result:Number = 0;
-
result = Arithmetic.subtract(2,1);
-
assertTrue("结果为 1",result == 1);
-
-
assertTrue("结果为 0",0,Arithmetic.subtract(2,2));
-
- }
-
-
- }
- }
package
{
import flexunit.framework.TestCase;
import flexunit.framework.TestSuite;
public class ArithmeticTest extends TestCase
{
/**
* 重写TestCase的构造器
* author:LiuYX
* date:2009-01-07
*/
public function ArithmeticTest(methodName:String)
{
//回调TestCase的构造器
super(methodName);
}
/**
* 静态方法,返回这个TestCase包含的TestSuite
* author:LiuYX
* date:2009-01-07
*/
public static function Suite():TestSuite{
var suite:TestSuite = new TestSuite();
suite.addTest(new ArithmeticTest("testAdd"));
suite.addTest(new ArithmeticTest("testSubtract"));
return suite;
}
/**
* TestCast的测试方法,测试业务类的加法逻辑
* author:LiuYX
* date:2009-01-07
*/
public function testAdd():void{
var result:Number = 0;
result = Arithmetic.add(1,2);
assertTrue("和为 3",result == 3);
result = Arithmetic.add(2,2);
assertEquals("和为 4",4,result);
}
/**
* TestCast的测试方法,测试业务类的减法逻辑
* author:LiuYX
* date:2009-01-07
*/
public function testSubtract():void{
var result:Number = 0;
result = Arithmetic.subtract(2,1);
assertTrue("结果为 1",result == 1);
assertTrue("结果为 0",0,Arithmetic.subtract(2,2));
}
}
}
7.修改TestFlexUnit.mxml,加入flexunit的TestRunnerBase。
- <?xml version="1.0" encoding="utf-8"?>
-
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
-
xmlns:flexunit="flexunit.flexui.*"
-
layout="absolute"
-
creationComplete="onCreationComplete()">
- <mx:Script>
- <![CDATA[
-
import flexunit.framework.TestSuite;
-
-
-
-
-
-
private function createSuite():TestSuite
- {
-
-
var suite:TestSuite = new TestSuite();
- suite.addTest(ArithmeticTest.Suite());
-
-
-
return suite;
- }
-
-
-
-
private function onCreationComplete():void
- {
-
-
testRunner.test = this.createSuite();
- testRunner.startTest();
- }
- ]]>
- </mx:Script>
- <!-- flexunit的TestRunnerBase界面组件 -->
-
<flexunit:TestRunnerBase id="testRunner" width="100%" height="100%" />
- </mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:flexunit="flexunit.flexui.*"
layout="absolute"
creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
import flexunit.framework.TestSuite;
/**
* 创建整个项目的TestSuite
* author:LiuYX
*/
private function createSuite():TestSuite
{
/*组建TestSuite*/
var suite:TestSuite = new TestSuite();
suite.addTest(ArithmeticTest.Suite());
/*TODO:在这加入其它TestSuite*/
return suite;
}
/**
* 调用TestRunner进行测试
*/
private function onCreationComplete():void
{
/*代入TestRunnerBase进行测试*/
testRunner.test = this.createSuite();
testRunner.startTest();
}
]]>
</mx:Script>
<!-- flexunit的TestRunnerBase界面组件 -->
<flexunit:TestRunnerBase id="testRunner" width="100%" height="100%" />
</mx:Application>
运行结果:
-
- 大小: 8.4 KB
-
- 大小: 44.4 KB
-
- 大小: 55.8 KB
-
- 大小: 36.4 KB
-
- 大小: 34 KB
分享到:
相关推荐
综上所述,Flex持续集成之单元测试涉及到Flex应用程序的模块化测试,采用FlexUnit作为测试框架,通过持续集成工具确保代码质量。开发者应该熟练掌握这些技术,以实现高效、可靠的开发流程。通过学习和实践,可以提升...
FlexUnit是针对Adobe Flex开发的一款专业测试框架,它为Flex应用程序提供单元测试的能力,使得开发者能够在编码阶段就发现和修复问题,从而提高软件质量和可靠性。FlexBuilder4(后来被称为Flash Builder)是Adobe...
我们可以使用ASUnit、FlexUnit或Spock这样的测试框架来编写和执行单元测试。 2. **集成测试**:当多个组件协同工作时,我们需要进行集成测试以确保它们之间的交互无误。Flex Builder或Maven插件可以帮助管理这种...
FlexUnit 4 是一个针对Adobe Flex应用程序的自动化测试框架,它是基于JUnit的单元测试工具的Flex版本。这个压缩包“flexunit-4.1.0_RC2-4-4.1.0.16076.zip”包含了FlexUnit 4的特定版本,即4.1.0 RC2 (Release ...
FlexUnit 是一款强大的ActionScript测试框架,主要用于编写和运行针对Adobe Flex、Flash Player以及Adobe AIR应用的单元测试。它借鉴了JUnit的模式,为开发人员提供了一种结构化的方法来验证代码的功能,确保软件的...
FlexUnit4 是一款针对ActionScript和Flex应用程序的单元测试框架,它的设计灵感来源于Java的JUnit。这个框架的主要目的是为了帮助开发者编写和运行针对Flex应用程序的自动化测试,确保代码的正确性和稳定性。 ...
在进行Flex测试时,开发者和测试工程师可能会使用如FlexUnit(一个单元测试框架)、Greensock(动画库,可用于性能测试)、FlexMonkey(自动化UI测试工具)等工具。同时,使用版本控制系统如Git进行源代码管理,确保...
在Flex项目开发中,单元测试是确保代码质量和可维护性的重要环节。 此包包含了多个关键文件,每个文件都有其特定的作用: 1. **LICENSE**:这是软件的许可协议文件,通常包含使用、分发和修改该软件的法律条款。...
Flex当前炙手可热的RIA技术,FlexUnit使Flex开发的单元测试成为可能。FlexUnit的目标和思想与JUnit都是差不多的,在此不赘述。FlexUnit也经历了几个版本,目前最新的稳定版是1.0RC版,已经支持了标注式的test,非常...