ArchSummit全球架构师峰会全新主题——「智能进阶·架构重塑」>>> 了解详情
写点什么

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:111943
用户头像

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

关注

评论

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

可拓展的低代码全栈框架

树上有只程序猿

软件开发 低代码

API网关是什么?

RestCloud

ipaas

技术为王丨华为云打破中小企业开发小程序低效怪圈

轶天下事

时间序列分析在股票量化策略中的探讨

Geek_d872c2

时间序列 量化投资

租赁系统开发定制源码:实现高效、智能的资产管理和租赁流程

V\TG【ch3nguang】

近年北美地区 IT 岗求职之怪现状

HoneyMoose

OpenHarmony父子组件双项同步使用:@Link装饰器

OpenHarmony开发者

全域Serverless+AI,华为云加速大模型应用开发

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 大模型应用开发

遥遥领先!华为云耀云服务器L实例打造企业数字化转型新标杆

YG科技

C++移动和获取文件读写指针

攻城狮Wayne

错误排查

极狐GitLab专家团队支招解决 CVE-2023-4998 漏洞问题

极狐GitLab

DevOps gitlab 安全 DevSecOps 漏洞

Java List 中存不同的数据类型

HoneyMoose

打造次世代分析型数据库(五):复杂查询分析工具

腾讯云大数据

数据库

跨境电商难做?轻量云服务器助你快速“出海”

YG科技

TX云服务器续费肉痛?试试华为云耀云服务器吧!

轶天下事

2023年被问了100遍的1000道java面试题,终于总结成了485页PDF

程序员万金游

编程 Java 面试 程序员、 java Java 面试题

轻量云服务器才是跨境电商最终归宿

平平无奇爱好科技

蓝易云:Ubuntu系统添加和删除用户方法。

百度搜索:蓝易云

云计算 Linux ubuntu 云服务器 用户

蓝易云:Mac 安装homebrew Mac安装Git教程。

百度搜索:蓝易云

git Linux Mac homebrew linux云计算

文心一言 VS 讯飞星火 VS chatgpt (109)-- 算法导论10.1 7题

福大大架构师每日一题

福大大架构师每日一题

华为云828营销季正式开启,打造中小企业“上云嘉年华”

平平无奇爱好科技

解读非托管流动性协议Hover: 差异化、层次化的全新借贷体系

股市老人

Java @Override 注解

HoneyMoose

深耕业财一体化,激活企业全面预算管理新动能

智达方通

业财融合 智达方通 全面预算管理 企业财务管理

HarmonyOS网络管理开发—Socket连接

HarmonyOS开发者

给力!一个基于SpringBoot+Vue前后端分离低代码项目

互联网工科生

Vue 低代码 springboot

开发搭建体育行业的赛事直播平台指南

软件开发-梦幻运营部

Hello, Vector DB|认识一下,这才是真正的向量数据库

Zilliz

Milvus Zilliz ann 向量数据库

Spring扩展-自定义属性编辑器

JD云云主机太捞?这款轻量云服务器存在感满满

轶天下事

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