上海总部 | 南京分部
技术文章 Technology Categories
WEB测试
单元测试
功能测试类
性能测试
咨询服务 Services Advisory
注册香港公司 咨询热线:
400-920-8213
租车 上海专线:
86-021-51556355
咨询邮箱:
  jiyl@withubtraining.org
现在位置:首页 >>> 技术文章 >>> 单元测试 >>>查看文章
用FlexUnit做单元测试
作者:admin   来源:本站    浏览:2351

简介:
FlexUnit是Adobe公司开发的一款为Flex程序单元测试的开源框架。它是以在Java开发领域广泛使用的JUnit测试框架为基础发展而来。FlexUnit提供了低级别的自动测试系统。
单元测试作为软件开发中传统的瀑布模型中的一部分已经存在很长时间了。然而,其作为极限编程的主要信条上有所发展。在极限编程中你首先要写单元测试然后才是你的代码。你也可以重构代码作为你新增的特性。当代码被重构时,单元测试能帮助你快速的发现错误。也可以被用作回归测试的一部分从而确保新加的代码不会影响到已经存在的功能。
单元测试可以全自化,可以被包含作为构建进程的一部分。Ant 可以方便的自动构建Adobe应用, 用它尼克以自动编译和测试你的Flex应用。
单元测试并不是所有测试工作的结束,仅仅是个开始而已,通过它可以捕获到低级别的错误。但有许多错误类型超出了其能力范围。比如说集成错误、系统错误、性能问题等等。
什么是单元测试?
明白单元测试,你首先的了解诶什么是单元(Unit),单元即一个小的、可测试、执行特定任务的代码片段。在Flex应用中即一个函数或一个方法(Flex/ActionScript是面向对象的语言)。不像其他测试,单元测试通常有开发者完成。开发者在低级别内测试代码确保每个方法执行都能返回理想的结果。理论上讲,只要每个函数在低级别内能正常执行,那么高级别内的集成测试也应该错误不会太多的。
测试对象:
银行账户类:存款(deposit)、取款(withdraw)、查询账户余额(getBalace)


package
{
publicclassBankAccount
{
 varprivatebalance:Number=0;
 
 publicfunctiondeposit(amount:Number){
   balance=balance+amount;
   }
 
 publicfunctionwithdraw(amount:Number){
   balance=balance-amount;
   }
 
 publicfunctiongetBalance():Number{
  returnbalance;
   }
  }
}

开始用FlexUnit单元测试
前提:1.下载FlexUnit,该工程包含类库
2.创建单元测试 Unit tests
3.创建测试集 Test suite 4.创建Test runner
下载FlexUnitLibrary:http://code.google.com/p/as3flexunitlib,解压会找到flexunit.swc。
添加该类库到你的工程中。
创建单元测试:
A unit test is made up of  logical assertions.If an assertion is true, the unit test passes. If an assertion is false then the unit test fails.
There are several assertion methods available for our unit tests such as: assertTrue, assertFalse, assertNull, assertEquals, and several others.
BankAccountTest.as

  1. package {   
  2.      
  3.     import flexunit.framework.TestCase;   
  4.        
  5.     public class BankAccountTest extends TestCase {   
  6.                        
  7.             /**  
  8.              * Test Deposit  
  9.              */  
  10.             public function testDeposit():void {   
  11.             var bankAccount:BankAccount=new BankAccount();   
  12.             bankAccount.deposit(50);   
  13.             assertTrue("Balance on a new account after 50 deposit is 50", bankAccount.getBalance() == 50);   
  14.             bankAccount.deposit(25);   
  15.             assertEquals("Balance after 50 deposit and another 25 deposit is 75", 75,bankAccount.getBalance());   
  16.                    
  17.             }   
  18.                
  19.             /**  
  20.              * Test withdraw  
  21.              */  
  22.             public function testWithdraw():void {   
  23.             var bankAccount:BankAccount=new BankAccount();   
  24.             bankAccount.deposit(100);   
  25.             bankAccount.withdraw(50);   
  26.             assertTrue("Balance on a new account after 100 deposit and a 50 withdraw is 50", bankAccount.getBalance() == 50);   
  27.                
  28.       
  29.             }   
  30.                
  31.         }   

创建TestRunner
TestRunner.mxml


   1.  <?xml version="1.0" encoding="utf-8"?> 
   2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" 
   3.                 xmlns:flexunit="flexunit.flexui.*" 
   4.                 creationComplete="onCreationComplete()"> 
   5.       
   6.     <mx:Script> 
   7.         <![CDATA[ 
   8.             import flexunit.framework.TestSuite; 
   9.              
  10.             // Create the test suite and run the tests 
  11.             private function onCreationComplete():void 
  12.             { 
  13.                 testRunner.test = createSuite(); 
  14.                 testRunner.startTest(); 
  15.             } 
  16.              
  17.             // Creates the test suite to run 
  18.             private function createSuite():TestSuite { 
  19.                 var testSuite:TestSuite = new TestSuite(); 
  20.                  
  21.                 testSuite.addTestSuite( BankAccountTest ); 
  22.                  
  23.                 return testSuite; 
  24.             }    
  25.         ]]> 
  26.     </mx:Script> 
  27.  
  28.     <!-- FlexUnit GUI Component --> 
  29.     <flexunit:TestRunnerBase id="testRunner" width="100%" height="100%" /> 
  30. </mx:Application> 
培训中心简介 | 师资力量 | 教学环境 | 隐私条款 | 技术支持中心 | 合作伙伴 | 权威认证 | 交通路线 | 联系我们 | 在线留言
报名地址:上海市徐汇区乐山路33号2号楼4楼 邮政编码:200030
Copyright© 2000—2009 上海慧谷职业技能培训中心 All Right Reserved
Number of visitors:440713     沪ICP备10020950号