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

FlexUnit 4 Demo

    博客分类:
  • Flex
阅读更多

这段时间正在使用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.

分享到:
评论

相关推荐

    flexunit-4.1.0_RC2-4-4.1.0.16076.zip,flexunit 4

    - **创建测试类**:为每个要测试的类创建一个相应的测试类,继承自`flexunit4.framework.TestCase`。 - **编写测试方法**:使用`@Test`注解标记测试方法,并在其中使用断言库来验证代码行为。 - **运行测试**:...

    FlexUnit4熟悉与使用

    FlexUnit4 是一款针对ActionScript和Flex应用程序的单元测试框架,它的设计灵感来源于Java的JUnit。这个框架的主要目的是为了帮助开发者编写和运行针对Flex应用程序的自动化测试,确保代码的正确性和稳定性。 ...

    FlexUnit4.1

    Flex当前炙手可热的RIA技术,FlexUnit使Flex开发的单元测试成为可能。FlexUnit的目标和思想与JUnit都是差不多的,在此不赘述。FlexUnit也经历了几个版本,目前最新的稳定版是1.0RC版,已经支持了标注式的test,非常...

    flexunit 详细简单用例里面带有flexunit.swc包

    4. **运行测试**:一旦测试类准备好,你可以通过FlexUnit提供的API或FlexBuilder的测试运行器来运行测试。测试结果会展示每个测试用例的通过或失败情况,帮助你快速定位问题。 5. **持续集成**:在大型项目中,将...

    FlexUnit,Flex调试专用插件!

    FlexBuilder4(后来被称为Flash Builder)是Adobe官方推出的集成开发环境(IDE),专门用于Flex应用的开发,其中内置了FlexUnit的支持。 FlexUnit的核心功能包括: 1. **测试组织**:FlexUnit允许开发者创建独立的...

    flexunit ant版本里面有ant的详细配置

    FlexUnit和Ant是两个在Java和ActionScript开发中常用的工具。FlexUnit是一个单元测试框架,用于测试ActionScript和Flex应用程序,而Ant是一个开源的构建工具,它使用XML来定义项目构建过程,包括编译、打包、测试等...

    flex-unit包

    9. **FlexUnit4AirCIListener** 和 **FlexUnit4FlexCoverListener**:这两个文件很可能分别是FlexUnit测试框架的监听器,用于在AIR (Adobe Integrated Runtime)环境中和代码覆盖率分析中增强测试体验。监听器可以...

    grunt-flexunit:flexunit 服务器的 Grunt 插件

    grunt-flexunit flexunit-server 的 Grunt 插件。 额外要求 除了 npm 模块依赖项之外,运行grunt-flexunit还需要以下内容。 要用于打开swf文件的浏览器 目前仅支持Firefox 浏览器的 Flash Player 插件 xvfb-run ...

    flexunit-server:Flexunit Node.js 服务器

    flexunit-服务器FlexUnit Node.js 服务器。 该模块接受来自 FlexUnit CIListener 的连接并使用给定的报告器生成结果。使用示例 var fuserver = require ( "flexunit-server" ) ;var reporter = new fuserver . ...

    grunt-flexunit:一个Grunt任务插件,可为基于Adobe FlexActionScriptMXMLFlashAIRetc的应用程序运行FlexUnit测试

    咕flex挠单位一个Grunt任务插件,用于为基于Adobe Flex / ActionScript / MXML / Flash / AIR / etc的应用运行FlexUnit测试。入门这个插件需要~0.4.2 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何...

    FlexUnit-开源

    FlexUnit 是一个开源的单元测试框架,专门设计用于Macromedia Flex(现在称为Adobe Flex)应用程序的开发。这个框架使得ActionScript 2.0开发者能够按照面向对象的方式编写测试用例,确保他们的代码质量可靠,功能...

    fd-unit:用于单元测试的FlashDevelop 4插件

    `fd-unit` 是一个专为FlashDevelop 4设计的插件,旨在帮助Flash开发者进行单元测试,特别是针对使用FlexUnit4框架的项目。FlashDevelop是一款流行的开源集成开发环境(IDE),主要用来编写ActionScript 3、Flex以及...

    FLEX教程-FLEX教程

    Demo9:FlexUnit4 - **单元测试**: 对 Flex 应用的各个模块进行独立测试。 - **实施步骤**: - 安装 FlexUnit 框架。 - 编写测试用例。 - 运行测试并验证结果。 #### 19. Demo10:DataGrid - **DataGrid**: ...

    Flex3与Flex4对比

    - **FlexUnit支持**:FlexUnit是一种用于Flex项目的单元测试框架,仅在Flex4的高级版本中得到支持。 - **自动化功能测试**:Flex3与Flex4的高级版本均支持自动化功能测试,这对于确保应用质量至关重要。 ##### 3. ...

    flex3_java 教程

    Demo9: FlexUnit4 - **单元测试概念**:解释单元测试的重要性。 - **FlexUnit4介绍**:介绍FlexUnit4框架及其特点。 - **测试编写**:学习如何编写单元测试,确保代码质量。 #### 16. Demo10: DataGrid - **...

    跟我StepByStep学FLEX教程------王一松

    Demo9:FlexUnit4 - **集成测试**:学习如何使用FlexUnit进行集成测试。 - **性能测试**:介绍性能测试的方法。 #### 19. Demo10:DataGrid - **DataGrid组件**:介绍DataGrid组件的功能和使用方法。 - **数据...

    flex4集成java

    确保 Flex 应用和 Java 服务都在正确的环境中部署,例如Tomcat、Jetty或WebLogic等应用服务器,并使用工具如FlexUnit或JUnit进行单元测试和集成测试。 8. **最佳实践**: - 尽可能将计算密集型任务放在 Java 后端...

    flex4 温度计控件

    在AS3中,我们可以使用ASUnit或FlexUnit这样的单元测试框架来编写测试代码,确保控件在不同情况下能正确工作。 7. **用户交互**:除了自动更新,用户可能也需要手动调整温度读数。控件可能包含鼠标或触摸事件处理,...

    Flex持续集成之单元测试

    压缩包中的"flexunit-flexunit-4.1.0-2-g7d4c01c.zip"很可能就是FlexUnit 4.1.0的源码或库文件,开发者可以通过导入这个库到项目中,利用其提供的测试类和方法来构建和执行单元测试。 持续集成(Continuous ...

    Screenshot:Screenshot 是一个用于 UI 组件集成测试的 ActionScript 3 实用程序。 它与 FlexUnit 测试流程和 Flex Framework UI 组件完美配合

    它与 FlexUnit 测试流程和 Flex Framework UI 组件完美配合。 Flash 有一项特殊能力——输出看起来总是一样的。 快速、轻便且易于使用 [ Test(async, ui) ] public function defaultColor() : void { var ...

Global site tag (gtag.js) - Google Analytics