- 浏览: 602458 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
wzh051527:
我是大四实习生一个,自我感觉技术能力在第三年。。唯一不明白,为 ...
十年技术,不要再迷茫 -
room_bb:
.hrl文件怎么加入到编译规则里面?比如:pp.hrl文件-d ...
Erlang中用的makefile的一点解释 -
吉米家:
感觉帆软报表的flash打印就很不错哇,特别好用
JSP 实现报表打印 -
雪碧爱芬达:
苦逼程序员的辛酸反省与总结 -
mlyjxx:
...
十年技术,不要再迷茫
这段时间正在使用FlexUnit进行测试驱动开发,这里试着翻译一下FlexUnit 4 wiki[部分]。系列文章打算在我的博客http://andychen0208.blogbus.com里翻译,以锻炼自己的英语水平。(英文不好,本着学习、讨教和共享的精神,希望大家鼓励和指正,原文请移步http://docs.flexunit.org/index.php?title=FlexUnit4FeatureOverview
FlexUnit 4 主要的新功能
Test元数据
在FlexUnit4中,使用命名为[Test]的元数据来标志Test Case,不再使用一些特殊的前缀[比如test等]来标志,同样,在特定的Test和Suite中也不需要了,并且所有的类不再需要继承自框架中任何类。以下是两个测试的例子:
[Test] public function addition():void { Assert.assertEquals(12, simpleMath.add(7, 5)); } [Test] public function subtraction():void { Assert.assertEquals(9, simpleMath.subtract(12, 3)); }由于现在不需要从FlexUnit框架中派生出任何的类,你将会注意到你过去使用的“断言”方法(assertEquals, assertTrue),现在已经作为静态方法封装在Assert类了。在本文章之后,将告诉大家更多的新的“断言”方法。
Before and After
有时为了方便测试,你需要启动你的测试环境,比如上边的两个例子中,在测试运行之前,你需要确保simpleMath的引用或它的实例已经存在。在FlexUnit和FlexInt的前一版本中,你需要重构一个签名为setup()或者tearDown()的方法来完成这一个目标,而FlexUnit4引入了 Before 和After这两个元数据来实现同样的功能。只要标志为Before的方法,它将会在运行在所有的测试之前,而标志为After的方法则运行在有的测试之后,这也意味着在测试之前后测试之后可以定义多个方法。
[Before] public function runBeforeEveryTest():void { simpleMath = new SimpleMath(); } [Before] public function alsoRunBeforeEveryTest():void { simpleMath1 = new SimpleMath(); } [After] public function runAfterEveryTest():void { simpleMath = null; simpleMath1 = null; }如果你选择使用多个Before和After,你可以用order参数来控制他们运行的先后顺序.比如:
[Before(order=1)]
...
[Before(order=2)]
...
BeforeClass and AfterClass
标志为Before和After的方法分别运行在各测试方法之前和之后。而BeforeClass和AfterClass允许你定义一些静态方法,这些方法运行在整个测试类之前和之后,并且只运行一次。同样和Before、After一样,你也可以定义多个标志为BeforeClass和AfterClass的方法,并且通过order参数来控制他们的先后顺序。比如:
[BeforeClass] public static function runBeforeClass():void { // run for one time before all test cases } [AfterClass] public static function runAfterClass():void { // run for one time after all test cases }Exception Handling [异常处理]
Test metadata can also have an expects parameter. The expects parameter allows you to indicate that a given test is expected to throw an exception. If the test throws the named exception it is considered a success, if it does not, it is considered a failure. This prevents us from having to write tests wrapped in a try block with an empty catch.
Test元数据中同样存在一个命名为expects的参数,这个expects参数允许你指示一个给定的测试去捕获一个异常。如果这个测试抛出了这个指定的异常,那么我们认为是测试成功的,否则认为是测试失败的。这就可以避免我们不得不去写一个用try catch语句包裹的而catch语句中什么也没干的测试。
[Test(expects="flash.errors.IOError")] public function doIOError():void { //a test which causes an IOError }Or [Test(expects="TypeError")] public function divisionWithException():void { simpleMath.divide( 11, 0 ); }Ignore [忽略]
Ignore metadata can be added before any test case you want to ignore. You can also add a string which indicates why you are ignoring the test. Unlike commenting out a test, these tests will still appear in the output reminding you to fix and/or complete these methods.
Ignore元数据可以添加在你想忽略测试的任何测试用例前,你也可以添加一个用来说明你为什么要忽略该测试的字符串。不同于注释掉的测试,用Ignore元数据标志的测试将依然出现在输出的结果中,以提醒你确定或完成这些测试方法。
[Ignore("Not Ready to Run")] [Test] public function multiplication():void { Assert.assertEquals(15, simpleMath.multiply(3, 5)); }Async [异步]
In previous versions of FlexUnit it was difficult to have multiple asynchronous events and to test code that was event driven but not always asynchronous. Fluint provides enhanced asynchronous support including asynchronous setup and teardown, but every test carried the overhead of the asynchronous code to facilitate this feature. FlexUnit 4 allows the developer to specify which tests need asynchronous support using the async parameter. When provided, the async parameter enables the full asynchronous support provided by Fluint for that particular test. When the async parameter is specified you may also specify an optional timeout for the method.
在FlexUnit的前一版本中,拥有多个异步事件以及对那些定义为事件驱动但不一定是异步的代码进行测试是比较困难的。Fluint以包含异步构造(setup)和析构(teardown)的方式提供了强化的异步支持,但为了促进这一功能,每一个测试增加异步代码的开销。FlexUnit4允许开发者使用async参数来指定哪些测试需要异步支持。当async参数被提供后,它使得由Fluint为那些特定的测试提供的完全异步支持成为可能。在async参数被指定时,你也可以为这个方法说明一个timeout的可选项。
[Before(async,timeout="250")] public function setMeUp():void { } [After(async,timeout="250")] public function allDone():void { } [Test(async,timeout="500")] public function doSomethingAsynchronous():void { //Async.proceedOnEvent( testCase, target, eventName ); //Async.failOnEvent( testCase, target, eventName ); //Async.handleEvent( testCase, target, eventName, eventHandler ); //Async.asyncHandler( testCase, eventHandler ); //Async.asyncResponder( testCase, responder ); }In addition to the async parameter, there are several new Async methods, each of which can also take individual timeouts, handlers and passThroughData.
除了async参数外,这里还有几个新的Async方法,每个方法也能带自己的timeouts, handlers 和passThroughData.
发表评论
-
as3 Loader 加载资源后内存泄露无法释放的问题。
2014-06-21 10:30 704as3 Loader 加载资源后内存泄露无法释放的问题。 ... -
as3判断flash player版本的函数
2014-06-10 20:35 859//判断当前版本是否高于9.0.115.0为例子. pr ... -
CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
2014-04-03 15:25 1065华文细黑:STHeiti Light [STXihei]华文 ... -
as3.0的垃圾回收机制
2013-09-07 14:02 1559还是同样的博客,还是同样的作者(Daniel Sidhio ... -
starling性能优化总结
2013-07-22 14:06 1495在项目开发的过程中总结了一下starling的性能优化方案: ... -
AS3 Socket从零开始
2013-07-22 12:54 1125大家如果想学AS3 Socket直接在百度里搜一下,会找到很 ... -
绕开AS3安全沙箱 跨域加载SWF
2013-07-11 12:53 933AS3的安全沙箱的确是 ... -
解决AS3在ie中初始化时stageWidth和stageHeight为0
2013-06-14 09:23 1052先看下面的一段脚本,这是比较经典的初始化脚本: pac ... -
动态获取swc中的类
2013-05-25 10:32 1000想通过代码生成,来获取swc中的类,并且可以作为普通类正常使 ... -
AS3 中字符串的format功能实现
2013-05-25 10:19 858使用C#的朋友都知道,string.Format();还是挺 ... -
总结调用Flash的几种方法
2013-05-02 16:18 1693一、Adobe 提供的方法 <object wi ... -
Flash3D错误集锦
2013-05-02 14:03 970VerifyError: Error #1014: 无法找到 ... -
使用scale拉伸之后的坐标问题
2013-04-12 09:38 1319最近发现论坛多了很多 ... -
30个实用的网页设计工具
2013-03-20 09:58 862作为一位网页设计师或开发者,你一直需要搜寻获取强大的网页设计 ... -
如何成为强大的程序员?
2013-03-11 11:27 753Aaron Stannard是新创公 ... -
漫谈重构
2013-03-11 11:09 910因为工作内容的原因, ... -
AS3使用谷歌API生成二维码
2012-12-10 16:24 1386二维码在新闻杂志,网站,网络广告,电视广告等地方随处可见 ... -
OOP的聚合原则
2012-12-10 16:21 948什么是聚合? 聚合可以很好地表达对象是什么和做 ... -
压缩速率追踪
2012-11-02 14:16 1497Flash Player 11.3添加了一个压缩和解压B ... -
SWF文件格式说明书--SWF文件头
2012-10-11 16:51 1251SWF文件头 字段 类型 ...
相关推荐
- **创建测试类**:为每个要测试的类创建一个相应的测试类,继承自`flexunit4.framework.TestCase`。 - **编写测试方法**:使用`@Test`注解标记测试方法,并在其中使用断言库来验证代码行为。 - **运行测试**:...
FlexUnit4 是一款针对ActionScript和Flex应用程序的单元测试框架,它的设计灵感来源于Java的JUnit。这个框架的主要目的是为了帮助开发者编写和运行针对Flex应用程序的自动化测试,确保代码的正确性和稳定性。 ...
Flex当前炙手可热的RIA技术,FlexUnit使Flex开发的单元测试成为可能。FlexUnit的目标和思想与JUnit都是差不多的,在此不赘述。FlexUnit也经历了几个版本,目前最新的稳定版是1.0RC版,已经支持了标注式的test,非常...
4. **运行测试**:一旦测试类准备好,你可以通过FlexUnit提供的API或FlexBuilder的测试运行器来运行测试。测试结果会展示每个测试用例的通过或失败情况,帮助你快速定位问题。 5. **持续集成**:在大型项目中,将...
FlexBuilder4(后来被称为Flash Builder)是Adobe官方推出的集成开发环境(IDE),专门用于Flex应用的开发,其中内置了FlexUnit的支持。 FlexUnit的核心功能包括: 1. **测试组织**:FlexUnit允许开发者创建独立的...
FlexUnit和Ant是两个在Java和ActionScript开发中常用的工具。FlexUnit是一个单元测试框架,用于测试ActionScript和Flex应用程序,而Ant是一个开源的构建工具,它使用XML来定义项目构建过程,包括编译、打包、测试等...
9. **FlexUnit4AirCIListener** 和 **FlexUnit4FlexCoverListener**:这两个文件很可能分别是FlexUnit测试框架的监听器,用于在AIR (Adobe Integrated Runtime)环境中和代码覆盖率分析中增强测试体验。监听器可以...
grunt-flexunit flexunit-server 的 Grunt 插件。 额外要求 除了 npm 模块依赖项之外,运行grunt-flexunit还需要以下内容。 要用于打开swf文件的浏览器 目前仅支持Firefox 浏览器的 Flash Player 插件 xvfb-run ...
flexunit-服务器FlexUnit Node.js 服务器。 该模块接受来自 FlexUnit CIListener 的连接并使用给定的报告器生成结果。使用示例 var fuserver = require ( "flexunit-server" ) ;var reporter = new fuserver . ...
咕flex挠单位一个Grunt任务插件,用于为基于Adobe Flex / ActionScript / MXML / Flash / AIR / etc的应用运行FlexUnit测试。入门这个插件需要~0.4.2 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何...
FlexUnit 是一个开源的单元测试框架,专门设计用于Macromedia Flex(现在称为Adobe Flex)应用程序的开发。这个框架使得ActionScript 2.0开发者能够按照面向对象的方式编写测试用例,确保他们的代码质量可靠,功能...
`fd-unit` 是一个专为FlashDevelop 4设计的插件,旨在帮助Flash开发者进行单元测试,特别是针对使用FlexUnit4框架的项目。FlashDevelop是一款流行的开源集成开发环境(IDE),主要用来编写ActionScript 3、Flex以及...
Demo9:FlexUnit4 - **单元测试**: 对 Flex 应用的各个模块进行独立测试。 - **实施步骤**: - 安装 FlexUnit 框架。 - 编写测试用例。 - 运行测试并验证结果。 #### 19. Demo10:DataGrid - **DataGrid**: ...
- **FlexUnit支持**:FlexUnit是一种用于Flex项目的单元测试框架,仅在Flex4的高级版本中得到支持。 - **自动化功能测试**:Flex3与Flex4的高级版本均支持自动化功能测试,这对于确保应用质量至关重要。 ##### 3. ...
Demo9: FlexUnit4 - **单元测试概念**:解释单元测试的重要性。 - **FlexUnit4介绍**:介绍FlexUnit4框架及其特点。 - **测试编写**:学习如何编写单元测试,确保代码质量。 #### 16. Demo10: DataGrid - **...
Demo9:FlexUnit4 - **集成测试**:学习如何使用FlexUnit进行集成测试。 - **性能测试**:介绍性能测试的方法。 #### 19. Demo10:DataGrid - **DataGrid组件**:介绍DataGrid组件的功能和使用方法。 - **数据...
确保 Flex 应用和 Java 服务都在正确的环境中部署,例如Tomcat、Jetty或WebLogic等应用服务器,并使用工具如FlexUnit或JUnit进行单元测试和集成测试。 8. **最佳实践**: - 尽可能将计算密集型任务放在 Java 后端...
在AS3中,我们可以使用ASUnit或FlexUnit这样的单元测试框架来编写测试代码,确保控件在不同情况下能正确工作。 7. **用户交互**:除了自动更新,用户可能也需要手动调整温度读数。控件可能包含鼠标或触摸事件处理,...
压缩包中的"flexunit-flexunit-4.1.0-2-g7d4c01c.zip"很可能就是FlexUnit 4.1.0的源码或库文件,开发者可以通过导入这个库到项目中,利用其提供的测试类和方法来构建和执行单元测试。 持续集成(Continuous ...
它与 FlexUnit 测试流程和 Flex Framework UI 组件完美配合。 Flash 有一项特殊能力——输出看起来总是一样的。 快速、轻便且易于使用 [ Test(async, ui) ] public function defaultColor() : void { var ...