阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Fluint——针对 Flex 的单元测试工具

  • 2008-11-02
  • 本文字数:1646 字

    阅读完需:约 5 分钟

随着富 Internet 应用(RIA)技术的不断流行,出现了更多支持 RIA 开发的工具。Flex 单元测试工具 Fluint 就是其中之一。

InfoQ 采访了 Fluint 的开发者和 Flex 的架构师—— Michael Labriala ,以了解在 Flex 开发过程中使用 Fluint 作为单元测试解决方案的更多信息。他解释说:

对于 Flex 单元和集成测试,“Fluint”非常简洁。它是为编写 Flex2 或 Flex3 应用的开发者提供的测试框架,无论这些应用是通过 Adobe Flash Player 在浏览器中部署的,还是通过 Adobe AIR 在桌面上部署的。

Fluint 最初是作为 Digital Primates 的内部工具开发的,用以测试一些非常大的项目。随着 Flex 社区对其需求的不断增长,Digital Primates 决定把其发布为一个开源项目。尽管针对 Flex 有其他的单元测试解决方案,按照 Labriala 的说法,Fluint 仍填补了重要空白。他解释说:

有其他几个项目也是关于 Flex 单元测试的。可是,Fluint 是到目前为止唯一一个涵盖单元测试和集成测试的项目。这很重要,原因如下:Flex 是一个组件框架,在你装配一个应用时,你是在 Adobe 组件和自己制作的组件基础上进行的。问题是从测试意义上讲,一个组件并没有提供一个好的‘单元’。组件内部非常复杂,而且有些方面天生就是异步的。 虽然你可以给你需要单元测试的应用程序和组件增加方法,但是你很可能会发现把几个已有组件整合为一些新的组件是应用程序中最容易出错的地方。已有框架不能很好地处理异步操作。因此,对由几个异步组件整合而成的组件所做的测试工作往往并不理想。

被问及可能使用 Fluint 的典型案例时,Labriala 回答道:

这个例子有点老套,但是它很好地说明了 Fluint 的强大之处。设想一个包含用户名域、密码域及登录按钮的简单登录表单。你可能还有两个客户端校验来确保用户名和密码不要少于一位字符或太长,或者不包含任何无效字符。如果它们是合法的,则发出一个带有用户名和密码‘login’事件,这样你的应用程序的另一部分就可以执行登录逻辑了。如果校验失败,在屏幕上就会显示一个错误消息。 任何 Flex 初学者都应该能够编写这样的组件,但是目前除了 Fluint 没有其它工具能够完全测试这个组件。

为了说明一些独特特性,Labriala 给出了用 Fluint 针对上述例子编写简单测试的步骤:

  • 把组件增加到显示列表以进行测试——这一步启动了组件的内部生命周期,以便对其方法进行真正测试。这里也是一半测试框架做不到的地方,因为它们实际上不允许把 UIComponent 增加到显示列表进行测试。
  • 等待数据提交以进行事件测试——大部分现有测试框架没有能力等候多个异步事件。
  • 确保组件传播一个‘login’事件并验证用户名和密码域——这里是大多数测试框架无法满足的需求。有些框架只是简单的获取屏幕快照并对其作比较,但是当结果是事件时这帮不上任何忙。事件不会显示在屏幕上以供比较。尽管不同的框架用于不同的目的,但这也是功能测试工具无法检测的。功能测试工具通常只是记录你的动作并让你在特定域录入数据,但是它们缺乏捕获并审查结果事件的能力。

关于 Fluint 的开发,Labriala 解释道:

Fluint 包含了一个 ActionScript 类库,其含有测试框架和相关的类。还有一个用 MXML 写的例子测试运行器。这只是你在 Web 浏览器中编写并运行测试所需的两个部分。然而,如果你对自动化环境感兴趣,Fluint 也提供了一个为 Adobe AIR 而写的测试运行器。它将运行已编译成单独模块的测试,并输出成 XML 文件。该 XML 文件很快就能与 JUnit 兼容,这样已有报表工具就可以为 Fluint 所用了。最后,有一个 ANT 任务可用,以便更容易地执行 AIR 测试运行器。

谈到未来的增强,Labrialal 说:

社区提出了许多非常好的增强意见,可能会在 Fluint 下一版本中得以体现。现在我们正在提升其性能,通过移除测试运行器中的一些低效代码,在对大项目进行测试的时候,其速度可以提高三倍以上。不管怎样,我们都在积极地为项目寻找贡献者。Digital Primates 到目前为止一直是主要的推动力量,但是我们希望随着我们的不断前进,这个项目最终变为社区所有。

查看英文原文: Fluint Unit Test Tool for Flex

2008-11-02 21:111970
用户头像

发布了 150 篇内容, 共 43.4 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

毕业设计项目

凌波微步

「架构实战营」

如何使用Python实现图像融合及加法运算

华为云开发者联盟

Python OpenCV 图像处理 图像融合 加法运算

10个产品主导的增长原则|Bessemer

观测云

手机网站一键秒变App?详细教程来了

YonBuilder低代码开发平台

APP开发 APICloud 手机网站

当你运行npm run命令时,会发生什么

华为云开发者联盟

JavaScript typescript npm Script run命令

做不好资产清点的网络安全防护都是耍流氓!

青藤云安全

一文简述:容灾等级&保护程度

穿过生命散发芬芳

容灾 5月月更

全新升级!阿里巴巴2022最新Spring源码全家桶全彩笔记开源

Java全栈架构师

spring 源码 程序员 面试 程序人生

druid 源码阅读(四)返回一个连接

爱晒太阳的大白

5月月更

不用PyScript,网页端运行的Python编辑器

OpenHacker

Python 编辑器 代码编辑器

满足多用途和峰值性能需求,英特尔 Arctic Sound-M成就出色游戏串流体验

科技新消息

银行借助纵向联邦学习 集中化进行长尾客群的精准营销

易观分析

联邦学习 联邦计算

青藤正式加入微软MAPP计划

青藤云安全

青藤参与编写的《数据安全法》实施参考(第一版)发布

青藤云安全

基于STM32+华为云IOT设计智能称重系统

华为云开发者联盟

物联网 传感器 stm32 华为云IoT平台 智能称重系统

不用PyScript,网页端运行的Python编辑器

Alexads

Python 代码编辑器

一文详述DMS资源池队列阻塞告警及原理

华为云开发者联盟

数据库 资源池 DMS 队列阻塞告警 资源池队列阻塞

即时通讯安全篇(九):为什么要用HTTPS?深入浅出,探密短连接的安全性

JackJiang

https 即时通讯 ssl im开发

引领创新!青藤入选“网信自主创新尖锋企业”

青藤云安全

ATT&CK V11版本发布,新增结构化检测内容

青藤云安全

2年,0事故,效能提升10倍的云原生安全最佳实践

青藤云安全

金融行业 金融服务安全 青藤

技术创新!青藤威胁检测论文入选国家中文核心期刊

青藤云安全

论文 威胁检测

Node.js可以用来做什么事?

小学僧

node.js 前端 5月月更

如何设计产品帮助中心?从这几点出发

小炮

面向CV编程:COPY了别人文章中的代码,想让代码能像作者一样跑通,应该注意什么呢?怎样才能让代码愉快地跑起来呢

迷彩

读书笔记 高效工作 程序员 个人思考 5月月更

西门子PLC设备如何接入AIRIOT物联网低代码平台 ?

AIRIOT

物联网, PLC 低代码开发 低代码平台

企评家 | 每日互动股份有限公司成长性评价简介

企评家

企评家,为沪深主板企业成长性评价

企评家

福昕软件与神州数码达成中国区分销合作

联营汇聚

不愧是阿里高工耗时182天肝出来1015页分布式全栈手册,从基础到高级,把分布式核心原理讲得明明白白

Java全栈架构师

程序员 架构 面试 分布式 程序员人生

最「难搞」的英伟达也开源了,苹果会是下一个吗?

腾源会

开源 英伟达 苹果 腾源会

Fluint——针对Flex的单元测试工具_Java_Moxie Zhang_InfoQ精选文章