小试FlexUnit

小试FlexUnit(Flex单元测试)

关键字: flex unit

最近学习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. * author:LiuYX
  15. */
  16. public static function subtract(a:Number,b:Number):Number{
  17. return a - b;
  18. }
  19. }
  20. }
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. public class ArithmeticTest extends TestCase
  6. {
  7. /**
  8. * 重写TestCase的构造器
  9. * author:LiuYX
  10. * date:2009-01-07
  11. */
  12. public function ArithmeticTest(methodName:String)
  13. {
  14. //回调TestCase的构造器
  15. super(methodName);
  16. }
  17. /**
  18. * 静态方法,返回这个TestCase包含的TestSuite
  19. * author:LiuYX
  20. * date:2009-01-07
  21. */
  22. public static function Suite():TestSuite{
  23. var suite:TestSuite = new TestSuite();
  24. suite.addTest(new ArithmeticTest("testAdd"));
  25. suite.addTest(new ArithmeticTest("testSubtract"));
  26. return suite;
  27. }
  28. /**
  29. * TestCast的测试方法,测试业务类的加法逻辑
  30. * author:LiuYX
  31. * date:2009-01-07
  32. */
  33. public function testAdd():void{
  34. var result:Number = 0;
  35. result = Arithmetic.add(1,2);
  36. assertTrue("和为 3",result == 3);
  37. result = Arithmetic.add(2,2);
  38. assertEquals("和为 4",4,result);
  39. }
  40. /**
  41. * TestCast的测试方法,测试业务类的减法逻辑
  42. * author:LiuYX
  43. * date:2009-01-07
  44. */
  45. public function testSubtract():void{
  46. var result:Number = 0;
  47. result = Arithmetic.subtract(2,1);
  48. assertTrue("结果为 1",result == 1);
  49. assertTrue("结果为 0",0,Arithmetic.subtract(2,2));
  50. }
  51. }
  52. }
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. * 创建整个项目的TestSuite
  11. * author:LiuYX
  12. */
  13. private function createSuite():TestSuite
  14. {
  15. /*组建TestSuite*/
  16. var suite:TestSuite = new TestSuite();
  17. suite.addTest(ArithmeticTest.Suite());
  18. /*TODO:在这加入其它TestSuite*/
  19. return suite;
  20. }
  21. /**
  22. * 调用TestRunner进行测试
  23. */
  24. private function onCreationComplete():void
  25. {
  26. /*代入TestRunnerBase进行测试*/
  27. testRunner.test = this.createSuite();
  28. testRunner.startTest();
  29. }
  30. ]]>
  31. </mx:Script>
  32. <!-- flexunit的TestRunnerBase界面组件 -->
  33. <flexunit:TestRunnerBase id="testRunner" width="100%" height="100%" />
  34. </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

liuyxit
搜索本博客
我的留言簿 >>更多留言
  • liuyxit 写道谢谢你的文章 流口水小众的文章没想到还真的有用. 呵呵.
    -- by Saito
最近加入群组
存档
评论排行榜
  • Rss
  • Rss_google
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值