- 浏览: 509201 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
michao:
大哥,还有aperture.exe吗? 发我一份,找不到呀,m ...
使用aperture框架让AS3与C++通信,执行本地代码 -
Aaron-Joe-William:
文件被删除了。下不了。
SQLite 数据库加密的一种解决方案 -
hanmiao:
樓主的文章不就是來自IBM Developers里的http: ...
mina 入门 -
howesen:
断包与粘包问题,需要处理下就好了
mina接收数据不全(2) -
sniciq:
git clone --recursive git://git ...
ESB学习笔记(Spring Integration实战)
在说明问题之前,大家就看一个例子:
import flexunit.framework.TestCase;
import flexunit.framework.Assert;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class TimerTest extends TestCase {
private var _timerCount:int;
public function TimerTest(methodName:String) {
super(methodName);
_timerCount = 0;
}
public function testTimer():void {
var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER, incrementCount);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, verifyCount);
timer.start();
}
private function incrementCount(timerEvent:TimerEvent):void {
_timerCount++;
}
private function verifyCount(timerEvent:TimerEvent):void {
Assert. assertEquals(1, _timerCount);
}
}
我们要对 testTimer ()方法进行测试,程序很简单,当我们测试 testTimer 时,内里并没有抛出任何错误,因此我们看到的结果是正确的,但是当 3 秒过后,程序会自动执行 verifyCount( ) 函数,这函数体里有 assertEquals(1,_timerCount) 这个语句,显然,我们在 incrementCount( ) 方法里把 _timerCount 增加了,因为 timer 只执行一次,所以 _timerCount 的值应为 1 ,那么我们比较的结果应该是正确的。但如果我们这样写呢:
Assert. assertEquals(100, _timerCount);
我们可以看到, TestRunnerBase 里依然显示正确,这是为什么呢?因为这个比较是在 3 秒后才执行的,在测试 testTimer( ) 的时间只需短短的十几毫秒,那时并没有抛出任何错误,当 testTimer( ) 执行完毕,该 testcase 便会被清除,于是就认为测试通过。
说到这里,大家就会开始想解决以上问题的方法。在 FlexUnit 中,使用了 addAsync() 这个函数来解决上述问题。下面我们介绍 addAsync( ) 函数的用法:
addAsync( ) 有四个参数:
1、 触发的事件函数。
2、 监听的时间,单位为毫秒。
3、 事件函数的参数,类型为 Object ,默认为空。
4、 失败所要调用的函数,如果在指定时间内没有触发事件,则断言失败。默认为空。
另外, addAsync() 方法的返回值是一个函数。
我们把上面的例子改为:
public class TimerTest extends TestCase {
private var _timerCount:int;
public function TimerTest(methodName:String) {
super(methodName);
_timerCount = 0;
}
public function testTimer():void {
var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER, incrementCount);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, addAsync(verifyCount , 3500) );
timer.start();
}
private function incrementCount(timerEvent:TimerEvent):void {
_timerCount++;
}
private function verifyCount(timerEvent:TimerEvent):void {
Assert. assertEquals(15, _timerCount);
}
}
这里,我们运行的时候,会发现程序在等待:
3 秒之后就会出现如下结果:
这里有一点要注意,如果我们这样写:
public function testTimer():void {
addAsync(verifyCount, 5000);
_timer = new Timer(3000, 1);
_timer.addEventListener(TimerEvent.TIMER, verifyCount );
_timer.start();
}
或者这样写:
public function testTimer():void {
var function:Function = verifyCount;
addAsync(function, 5000);
_timer = new Timer(3000, 1);
_timer.addEventListener(TimerEvent.TIMER, function);
_timer.start();
}
都会提示为:“ Asynchronous function did not fire after 5000 ms ”这样的错误。这是为什么呢?明明在 5 秒的时间内 verifyCount 函数被执行了。
但是当然们改成这样时:
public function testTimer():void {
var function:Function = addAsync(verifyCount, 5000);
_timer = new Timer(3000, 1);
_timer.addEventListener(TimerEvent.TIMER, function);
_timer.start();
}
结果就正确了,那么大家就可以猜到,我们使用 addAsync(verifyCount, 5000) 方法,并不是断言 verifyCount 是否被执行了,而是断言 addAsync() 方法所返回的函数是否被执行了,如果有执行,我们就调用 verifyCount 方法,如果没有就断言失败。
另外要提一下的是, TestCase 里还有 setUp( ) 和 tearDown( ) 两个函数。 setUp 方法将在每个测试方法之前运行,用于搭建通用的初始设置。 tearDown 方法将在每个测试方法之后运行,用于进行通用的卸载或清除工作。 setUp 和 tearDown 方法是该 TestCase 对象中的每个测试方法运行一次,而非对这个测试用例运行一次。
发表评论
-
十个Flex/Air疑难杂症及解决方案简略
2010-05-31 17:17 3341最近去一家台企面 ... -
Windows环境下配置+运行red5源码+AS3连接red5简单示例
2010-04-19 13:39 5181Windows环境下配置+运行red5源码+AS3连接red5 ... -
使用aperture框架让AS3与C++通信,执行本地代码
2010-04-08 16:48 3242我们都知道,AIR的效果是非常出色的,这也是大家喜欢她的原因, ... -
SQLITE入门至精通
2010-04-07 11:13 3004关键 ... -
教你解析FLEX JSON中的一个问题 关于键值 和键
2010-04-01 15:25 2311字符串:message = ' "param&quo ... -
air写文件保存在安装目录
2010-03-31 15:46 3215AIR中..保存文件我们般会像下面这样操作 var f ... -
弱弱的一个小问题,bitmapdata pngencoder base64 bytearray
2010-03-31 14:16 1150好久没写东东了,呵呵。随便写点点。关于bitmapdata如何 ... -
FLASH教程:SWF间的双向通信
2010-03-02 18:23 1357假设有一个主 SWf 名为 m ... -
如何把as文件生成swf格式文件
2010-03-02 18:22 5271一,从http://opensource.adobe.com/ ... -
Flex数据交互方法 :httpservice, webservice, RemoteObject, socket
2010-02-27 17:06 1909【转载】 文章分类:Flash编程 http://h ... -
理解Flash Player 9垃圾回收机制
2010-02-02 18:27 1082理解Flash Player 9垃圾回 ... -
BlazeDS入门教程-很详细-赞原创作者一个
2010-01-11 23:51 1717什么是BlazeDS呢?BlazeDS是一个基于服务器的Ja ... -
一些漂亮的Flex主题下载
2010-01-11 10:31 6156一些漂亮的Flex主题下载1Digg meWindows Cl ... -
通过Stratus 服务器在Flash Player中使用RTMFP 开发 点对点应用(一)
2010-01-08 17:43 5396作者:Jozsef Vass 译者:巴巴鲁 ... -
ActionScript 3.0著名开源库 大集合
2009-12-29 17:26 2023这篇文章开始于对Adrian ... -
Flex 读取XML配置文件总结
2009-11-19 11:45 1982在Flex中我 ... -
一个list定义组件,网上找了很久没有,自己做了一个。
2009-10-29 11:55 1229一个list定义组件,网上找了很久没有,自己做了一个。希望对大 ... -
如何使用Flex RemoteObject components 与JAVA交互
2009-10-08 18:04 52902008-12-25 | 22:53分类:前端开发 ... -
flex 在线录制视频语音
2009-09-12 17:45 3631<?xml version="1.0" ... -
flex 蒙板 遮罩
2009-09-11 17:09 3872方法一 <mx:Image source=&q ...
相关推荐
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-4.1.0-2-g7d4c01c.zip"很可能就是FlexUnit 4.1.0的源码或库文件,开发者可以通过导入这个库到项目中,利用其提供的测试类和方法来构建和执行单元测试。 持续集成(Continuous ...
3. **编写测试用例**:在测试方法内,使用断言(如`assertEquals`,`assertTrue` 等)来验证被测代码的行为是否符合预期。例如,如果测试一个加法函数,可以创建两个数字,调用函数并验证返回值是否正确。 4. **...
FlexUnit是针对Adobe Flex开发的一款专业测试框架,它为Flex应用程序提供单元测试的能力,使得开发者能够在编码阶段就发现和修复问题,从而提高软件质量和可靠性。FlexBuilder4(后来被称为Flash Builder)是Adobe...
FlexUnit4 是一款针对ActionScript和Flex应用程序的单元测试框架,它的设计灵感来源于Java的JUnit。这个框架的主要目的是为了帮助开发者编写和运行针对Flex应用程序的自动化测试,确保代码的正确性和稳定性。 ...
Flex当前炙手可热的RIA技术,FlexUnit使Flex开发的单元测试成为可能。FlexUnit的目标和思想与JUnit都是差不多的,在此不赘述。FlexUnit也经历了几个版本,目前最新的稳定版是1.0RC版,已经支持了标注式的test,非常...
FlexUnit是一个单元测试框架,用于测试ActionScript和Flex应用程序,而Ant是一个开源的构建工具,它使用XML来定义项目构建过程,包括编译、打包、测试等任务。 在Flex开发环境中,Ant经常被用来自动化构建流程,...
2. **NOTICE**:此文件通常列出所有受版权保护的第三方组件和库,以及它们的许可信息,提醒用户注意遵守相关授权规定。 3. **version.properties**:这是一个版本信息文件,记录了flex-unit包的版本号,帮助开发者...
FlexUnit 是一个开源的单元测试框架,专门设计用于Macromedia Flex(现在称为Adobe Flex)应用程序的开发。这个框架使得ActionScript 2.0开发者能够按照面向对象的方式编写测试用例,确保他们的代码质量可靠,功能...
咕flex挠单位一个Grunt任务插件,用于为基于Adobe Flex / ActionScript / MXML / Flash / AIR / etc的应用运行FlexUnit测试。入门这个插件需要~0.4.2 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何...
1. FlexUnit:FlexUnit是Flex版本的JUnit,用于进行单元测试,可以对ActionScript代码进行断言和模拟,确保代码片段的功能正确性。 2. Flex Monkey:这是一款自动化UI测试工具,通过模拟用户操作来检查应用程序的...
FlexUnit4是Adobe Flex的一个单元测试框架,它允许开发者对Flex和ActionScript 3的代码进行自动化测试。通过使用FlexUnit4,程序员可以确保代码的质量,提高代码的可维护性和可靠性。它提供了断言库、测试套件管理、...
FlexUnit等单元测试框架允许开发者编写和执行单元测试用例,以验证Flex组件的正确性和性能。通过案例分析,如BankAccount类的测试,可以深入了解如何在Flex项目中实施单元测试。 #### Silverlight自动化测试 Test...
第七章主要介绍Flash Builder中的单元测试工具FlexUnit,包括FlexUnit测试环境的创建、FlexUnit测试的创建和运行、配置FlexUnit测试以及查看FlexUnit测试运行的结果。 第八章介绍了使用Flex开发应用程序的基本工作...
Screenshot 是一个用于 UI 组件集成测试的 ActionScript 3 实用程序。 它与 FlexUnit 测试流程和 Flex Framework UI 组件完美配合。 Flash 有一项特殊能力——输出看起来总是一样的。 快速、轻便且易于使用 [ ...