`
wgcode
  • 浏览: 601934 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Flash Builder 4进行Unit Test

    博客分类:
  • Flex
阅读更多

作为一个新特性,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 面版,大家有空可以试一下。

分享到:
评论

相关推荐

    FlashBuilder4使用帮助

    本文档将详细介绍 Flash Builder 4 的安装、配置以及使用方法,帮助开发者快速上手并高效地进行项目开发。 #### 二、软件许可与版权声明 在使用 Flash Builder 4 之前,请确保您已经阅读并同意 Adobe 的最终用户...

    Flash Builder 4 高速下载

    Flash Builder 4 高速下载相关知识点 一、Flash Builder 4 简介 Flash Builder 4 是一款功能强大且灵活的集成开发环境(IDE),由 Adobe 公司开发,主要用于开发基于 Flash 和 Flex 的应用程序。它提供了多种功能...

    FlashBuilder_4_7_LS10_win64.z08(11-9)

    FlashBuilder_4_7_LS10_win64.zip;FlashBuilder_4_7_LS10_win64.z01;FlashBuilder_4_7_LS10_win64.z02;FlashBuilder_4_7_LS10_win64.z03;FlashBuilder_4_7_LS10_win64.z04;FlashBuilder_4_7_LS10_win64.z05;Flash...

    FlashBuilder_4_7_LS10_win64.z05(11-6)

    FlashBuilder_4_7_LS10_win64.zip;FlashBuilder_4_7_LS10_win64.z01;FlashBuilder_4_7_LS10_win64.z02;FlashBuilder_4_7_LS10_win64.z03;FlashBuilder_4_7_LS10_win64.z04;FlashBuilder_4_7_LS10_win64.z05;Flash...

    FlashBuilder4使用手册,很全面,很详细

    ### FlashBuilder 4 使用手册详解 #### 一、引言 随着互联网技术的不断发展与进步,FlashBuilder 作为一款强大的开发工具,在制作交互式应用程序、游戏等方面发挥了重要作用。本手册旨在为用户提供一个全面且详细...

    FlashBuilder_4_Plugin_LS10

    本文将围绕"FlashBuilder_4_Plugin_LS10"这一主题,深入探讨其在Eclipse中的使用方法以及如何利用其进行地图开发。 首先,让我们了解如何安装FlashBuilder 4 插件。下载到的"FlashBuilder_4_Plugin_LS10.exe"是一个...

    flashbuilder4入门教程.pdf

    - **FlashBuilder4的数据菜单**:相较于上一版本,FlashBuilder4在数据连接方面进行了增强,提供了更多连接方式,使开发者能够更方便地与不同数据源进行交互,提高了数据处理的灵活性和效率。 #### 总结 Flash...

    FlashBuilder4快速入门(中文)

    通过学习《FlashBuilder4快速入门(中文)》这本指南,初学者将能够理解Flex开发的基本概念,熟悉FlashBuilder 4的使用,并逐步建立起创建功能丰富的RIA应用的能力。书中可能涵盖了创建基本布局、使用组件、事件处理...

    Flash Builder 4 快速入门

    第一章 Flash Builder 4 背景 1.1 从Flex Builder到Flash Builder 第二章 Flash Builder 4 界面 2.1 主界面 2.2 主菜单 2.3 工具条 2.4 主要窗口 ·第三章 Flash Builder 4 新特性 3.1 Package explorer 3.2...

    Flash Builder 4 and Flex 4 宝典

    在《Flash Builder 4 and Flex 4 宝典》中,读者将深入学习如何使用Flex Builder 4进行项目设置、编写ActionScript代码、布局管理、组件设计、数据绑定、动画制作、服务调用以及性能优化等。此外,书中的示例和实践...

    Flash builder 4 快速入门

    总之,《Flash Builder 4 快速入门》教程全面覆盖了从基础到进阶的Flash Builder使用技巧,通过实例驱动的学习方式,使初学者能够快速上手,为开发高质量的RIA打下坚实的基础。配合全部案例源码包,学习者可以边学边...

    FlashBuilder_4_7_LS10_win64.z07(11-8)

    FlashBuilder_4_7_LS10_win64.zip;FlashBuilder_4_7_LS10_win64.z01;FlashBuilder_4_7_LS10_win64.z02;FlashBuilder_4_7_LS10_win64.z03;FlashBuilder_4_7_LS10_win64.z04;FlashBuilder_4_7_LS10_win64.z05;Flash...

    flashbuilder4 SVN插件

    通过使用FlashBuilder4 SVN插件,开发者可以更好地管理代码版本,防止因多人同时修改同一代码引发的问题,提高团队合作的效率。同时,它也使得版本回溯和调试变得更加简单,为项目的持续集成和持续交付提供了有力的...

    flash builder4快速入门教程

    8. **调试与测试**:学会使用Flash Builder 4的调试工具,包括设置断点、查看变量值、单步执行代码,以及模拟器和设备测试。 9. **发布与部署**:了解发布设置,如何生成SWF或AIR应用,以及部署到不同平台,如Web、...

    Flash Builder 4(中文)快速入门pdf

    在压缩包中的`FlashBuilder4Q_airiabook.pdf`文件,很可能是本书的电子版,它包含了完整的教程和示例,帮助读者通过实践来掌握Flash Builder 4的使用技巧。 学习Flash Builder 4对于想要进入Flex和RIA开发领域的...

    Flash Builder 4中文帮助文档

    《深入解析Flash Builder 4:中文帮助文档的关键知识点》 一、引言 Adobe Flash Builder 4是一款由Adobe公司开发的强大的...这对于每一位致力于使用Flash Builder 4进行开发的专业人士来说,都具有重要的指导意义。

    FlashBuilder_4_7_LS10_win64.z03(11-4)

    FlashBuilder_4_7_LS10_win64.zip;FlashBuilder_4_7_LS10_win64.z01;FlashBuilder_4_7_LS10_win64.z02;FlashBuilder_4_7_LS10_win64.z03;FlashBuilder_4_7_LS10_win64.z04;FlashBuilder_4_7_LS10_win64.z05;Flash...

    FlashBuilder4组件的使用

    FlashBuilder4组件的使用

    如何将Flex3的项目加载到FlashBuilder4中去

    我们将分为三个部分进行讲解:仅使用FlashBuilder4的新工具特性、同时保留原有行为并利用Flex4编译器的速度提升以及选择性地使用Flex4的语言特性。 #### 仅使用FlashBuilder4的新工具特性 对于那些希望在不改变...

Global site tag (gtag.js) - Google Analytics