`
flash7783
  • 浏览: 309425 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

小试FlexUnit(Flex单元测试)

阅读更多

最近学习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类),例下:


Java代码 复制代码
  1. package  
  2. {   
  3.     public class Arithmetic   
  4.     {   
  5.         /**  
  6.          * 加法  
  7.          * author:LiuYX  
  8.          */  
  9.         public static function add(a:Number,b:Number):Number{   
  10.             return a + b;   
  11.         }   
  12.            
  13.         /**  
  14.          * 减法  
  15.          * author:LiuYX  
  16.          */  
  17.         public static function subtract(a:Number,b:Number):Number{   
  18.             return a - b;   
  19.         }   
  20.     }   
  21. }  
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类,如下:

Java代码 复制代码
  1. package  
  2. {   
  3.     import flexunit.framework.TestCase;   
  4.     import flexunit.framework.TestSuite;   
  5.        
  6.     public class ArithmeticTest extends TestCase   
  7.     {   
  8.         /**  
  9.          * 重写TestCase的构造器  
  10.          * author:LiuYX  
  11.          * date:2009-01-07  
  12.          */  
  13.         public function ArithmeticTest(methodName:String)   
  14.         {   
  15.             //回调TestCase的构造器   
  16.             super(methodName);             
  17.         }   
  18.            
  19.         /**  
  20.          * 静态方法,返回这个TestCase包含的TestSuite  
  21.          * author:LiuYX  
  22.          * date:2009-01-07  
  23.          */  
  24.         public static function Suite():TestSuite{   
  25.             var suite:TestSuite = new TestSuite();   
  26.                
  27.             suite.addTest(new ArithmeticTest("testAdd"));   
  28.             suite.addTest(new ArithmeticTest("testSubtract"));   
  29.                
  30.             return suite;   
  31.                
  32.         }   
  33.            
  34.         /**  
  35.          * TestCast的测试方法,测试业务类的加法逻辑  
  36.          * author:LiuYX  
  37.          * date:2009-01-07  
  38.          */  
  39.          public function testAdd():void{   
  40.             var result:Number = 0;   
  41.                
  42.             result = Arithmetic.add(1,2);              
  43.             assertTrue("和为 3",result == 3);   
  44.                
  45.             result = Arithmetic.add(2,2);   
  46.             assertEquals("和为 4",4,result);   
  47.          }   
  48.             
  49.          /**  
  50.          * TestCast的测试方法,测试业务类的减法逻辑  
  51.          * author:LiuYX  
  52.          * date:2009-01-07  
  53.          */  
  54.          public function testSubtract():void{   
  55.             var result:Number = 0;   
  56.             result = Arithmetic.subtract(2,1);   
  57.             assertTrue("结果为 1",result == 1);   
  58.                
  59.             assertTrue("结果为 0",0,Arithmetic.subtract(2,2));   
  60.                
  61.          }   
  62.            
  63.   
  64.     }   
  65. }  
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。

Java代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"    
  3.     xmlns:flexunit="flexunit.flexui.*"  
  4.     layout="absolute"  
  5.     creationComplete="onCreationComplete()">   
  6.     <mx:Script>   
  7.         <![CDATA[   
  8.             import flexunit.framework.TestSuite;   
  9.                
  10.             /**  
  11.              * 创建整个项目的TestSuite  
  12.              * author:LiuYX  
  13.              */  
  14.             private function createSuite():TestSuite   
  15.             {   
  16.                 /*组建TestSuite*/  
  17.                 var suite:TestSuite = new TestSuite();   
  18.                 suite.addTest(ArithmeticTest.Suite());   
  19.                 /*TODO:在这加入其它TestSuite*/  
  20.                    
  21.                 return suite;   
  22.             }              
  23.             /**  
  24.              * 调用TestRunner进行测试  
  25.              */  
  26.             private function onCreationComplete():void  
  27.             {                                  
  28.                 /*代入TestRunnerBase进行测试*/  
  29.                 testRunner.test = this.createSuite();   
  30.                 testRunner.startTest();   
  31.             }              
  32.         ]]>   
  33.     </mx:Script>   
  34.     <!-- flexunit的TestRunnerBase界面组件 -->   
  35.     <flexunit:TestRunnerBase id="testRunner" width="100%" height="100%" />   
  36. </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持续集成之单元测试涉及到Flex应用程序的模块化测试,采用FlexUnit作为测试框架,通过持续集成工具确保代码质量。开发者应该熟练掌握这些技术,以实现高效、可靠的开发流程。通过学习和实践,可以提升...

    FlexUnit,Flex调试专用插件!

    FlexUnit是针对Adobe Flex开发的一款专业测试框架,它为Flex应用程序提供单元测试的能力,使得开发者能够在编码阶段就发现和修复问题,从而提高软件质量和可靠性。FlexBuilder4(后来被称为Flash Builder)是Adobe...

    flex测试总结

    我们可以使用ASUnit、FlexUnit或Spock这样的测试框架来编写和执行单元测试。 2. **集成测试**:当多个组件协同工作时,我们需要进行集成测试以确保它们之间的交互无误。Flex Builder或Maven插件可以帮助管理这种...

    flexunit-4.1.0_RC2-4-4.1.0.16076.zip,flexunit 4

    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 详细简单用例里面带有flexunit.swc包

    FlexUnit 是一款强大的ActionScript测试框架,主要用于编写和运行针对Adobe Flex、Flash Player以及Adobe AIR应用的单元测试。它借鉴了JUnit的模式,为开发人员提供了一种结构化的方法来验证代码的功能,确保软件的...

    FlexUnit4熟悉与使用

    FlexUnit4 是一款针对ActionScript和Flex应用程序的单元测试框架,它的设计灵感来源于Java的JUnit。这个框架的主要目的是为了帮助开发者编写和运行针对Flex应用程序的自动化测试,确保代码的正确性和稳定性。 ...

    Flex测试题目.doc

    在进行Flex测试时,开发者和测试工程师可能会使用如FlexUnit(一个单元测试框架)、Greensock(动画库,可用于性能测试)、FlexMonkey(自动化UI测试工具)等工具。同时,使用版本控制系统如Git进行源代码管理,确保...

    flex-unit包

    在Flex项目开发中,单元测试是确保代码质量和可维护性的重要环节。 此包包含了多个关键文件,每个文件都有其特定的作用: 1. **LICENSE**:这是软件的许可协议文件,通常包含使用、分发和修改该软件的法律条款。...

    FlexUnit4.1

    Flex当前炙手可热的RIA技术,FlexUnit使Flex开发的单元测试成为可能。FlexUnit的目标和思想与JUnit都是差不多的,在此不赘述。FlexUnit也经历了几个版本,目前最新的稳定版是1.0RC版,已经支持了标注式的test,非常...

Global site tag (gtag.js) - Google Analytics