亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用Flash Builder 4進行Unit Test

系統 1799 0

作為一個新特性,Flash Builder 4已經集成FlexUnit Test,使用起來很方便,下面我們就以一個Case來談談怎樣在Flash Builder 4中進行Unit Test。

1. 準備工作。首先用Flash Builder 4在一個Flex工程新建一個類。如下面代碼。

    package
{
	import flash.utils.ByteArray;

	public class ObjectUtil
	{
		public static function clone(source:*):* 
		{
			var ba:ByteArray = new ByteArray();
			ba.writeObject(source);
			ba.position = 0;
			return ba.readObject();
		}
	}
}
  

這個工具類實現對象的深度clone,也就是被復制的目標對象不再是源對象的參照,改變目標對象不會影響源對象。因為ActionScript 3.0和Flex Framework中有不少內置對象,如Date、Object、Array、ArrayColection、BitmapData等,情況比較多,單元測試正好派上用場。

2. 創建新的FlexUnit TestCase 類。

選擇該類>新建>TestCase 類,打開下圖所示對話框,一般按默認設置就行了。如下圖所示。

選擇應為其生成測試方法存根的方法。如下圖所示。

Flash Builder 4將自動為我們生成TestCase類和主程序文件的結構代碼。在TestCase類中,已經有一個沒有實現的測試方法testClone,為方便錯誤跟蹤,我們修改成了四個測試方。如下代碼所示。

    public function testCloneObject():void
{
	var obj:Object= {name:"Jim", age:25}
	var newObj:Object = ObjectUtil.clone(obj);
	newObj.age = 28;
	assertObjectEquals(obj, {name:"Jim", age:25});
}

public function testCloneArray():void
{
	var arr:Array= [1,2];			
	var newArr:Array = ObjectUtil.clone(arr);
	newArr[1] = 3;
	assertObjectEquals(arr, [1,2]);
}

public function testCloneCollection():void
{
	var ac:ArrayCollection = new ArrayCollection([
		{name:"Jim", age:28},
		{name:"Tom", age:30}
	]);
	
	var newAC:ArrayCollection = ObjectUtil.clone(ac);
	newAC.getItemAt(0).name = "Kite";
	assertEquals(ac.getItemAt(0).name, "Jim");
}

public function testBitmapData():void
{
	var bmd:BitmapData = new BitmapData(100,100,false);
	bmd.setPixel(10,10,0xFF0000);
	var newBMD:BitmapData = ObjectUtil.clone(bmd);
	newBMD.setPixel(10,10,0x0000FF);;
	assertEquals(bmd.getPixel(10,10), 0xFF0000);
}
  

注意,在FlexUnit 1 test中, 每個你創建的方法的方法名都必須以test開頭, 這個是為了讓測試運行器辨識需要測試的方法。

3. 創建新的FlexUnit Test Suite 類。選擇該類>新建>TestSuie類,打開對話框,輸入TestSuie類名,選擇目標測試類和方法。如下圖所示。

4. 修改主程序。

打開主程序mxml,做如下修改。

    <?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
	xmlns:s="library://ns.adobe.com/flex/spark" 
	xmlns:flexui="flexunit.flexui.*"
	xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="800" minHeight="600"
	creationComplete="creationCompleteHandler()">	
	<fx:Script>
	<![CDATA[
		import flexUnitTests.UtilSuite;
		
		private var flexUnitTests_UtilSuite_obj:flexUnitTests.UtilSuite;
		
		protected function creationCompleteHandler():void
		{
			testRunner.test = UtilSuite.suite();
			testRunner.startTest();
		}
	]]>
	</fx:Script>
	
	<flexui:TestRunnerBase id="testRunner"
		width="100%" height="100%"/>

</s:Application>
  

5. 運行測試程序。

結果testBitmapData()方法測試失敗:TypeError: Error #1034: 強制轉換類型失敗:無法將 Object@b9b5fb1 轉換為 flash.display.BitmapData。

6. 修改錯誤。其實,BitmapData有自己的clone方法,我們只要將這個方法整合到ObjectUtil類中就行了。

打開ObjectUtil類,添加一個條件,最終代碼如下。

    public static function clone(source:*):* 
{
	var ba:ByteArray = new ByteArray();
	ba.writeObject(source);
	ba.position = 0;
	if(source is BitmapData)
	{
		return (source as BitmapData).clone();
	}
	return ba.readObject();
}
  

回到第五步再進行測試,直到全部方法都通過。

另外,FlexUnit 4 test所用代碼更簡單,還支持元數據標簽。通過運行方式>FlexUnit 測試,可以直接生成主程序代碼。FlexUnit 4 test的界面是總結性的,很簡單,還有就是FlexUnit 面版,大家有空可以試一下。

使用Flash Builder 4進行Unit Test


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一区二区三区高清不卡 | 久久国产午夜精品理论片34页 | 亚洲国产婷婷综合在线精品 | 手机在线观看亚洲国产精品 | 九九色视频 | 国产亚洲精品美女久久久久 | 久久精品国产亚洲麻豆小说 | 亚洲一区精品视频在线 | 99在线免费视频 | 八戒久久精品一区二区三区 | 国产国产精品人在线视 | 欧美在线观看视频网站 | 一本色道久久综合亚洲精品高清 | 国产婷婷色一区二区三区 | 久久久久久久尹人综合网亚洲 | 久久天天躁夜夜躁狠狠躁2015 | 欧美一级毛片国产一级毛片 | 一本色道久久爱88a 一本色道久久爱88av俺来也 | 一级午夜视频 | 91精品啪国产在线观看免费牛牛 | 国产成人精品午夜二三区 | 午夜在线视频网站 | 看免费5xxaaa毛片30厘米 | yellow中文字幕久久网 | 国产成+人+综合+亚洲不卡 | 久久久不卡 | 久久综合玖玖爱中文字幕 | 日批日韩在线观看 | 久久精品亚洲精品国产欧美 | 国产日韩精品欧美一区色 | 国产精品99久久免费观看 | 亚洲欧美日韩国产精品影院 | 亚洲最色| 国模私拍视频在线观看 | 丹武至尊在线观看动漫 | 国产一级爱c片免费播放 | 久久国产精品麻豆映画 | 99精品一区二区免费视频 | 爆操极品美女 | 亚洲精品一区二区乱码在线观看 | 久热在线视频精品网站 |