我构建和维护了一组Flash组件,这些组件分发给发行商,并允许它们与我们的系统集成。目前,该组件没有UI,只包含用于查询系统服务器、解析响应和修改查询中发送的参数的编译代码。Flex和As2都有AS3版本和CS3版本。我们典型的工作流程如下:
1.)加载组件2。)在组件3上设置参数。)告诉组件查询我们的系统4。)等待一个事件,说响应已经收到并解析了5)。调用组件上的方法以检索和使用已解析的数据
最近,我们一直在谈论自动化这些组件的测试,而像AsUnit和FlexUnit这样的框架似乎有很多传言。然而,我从未能够理解如何有效地使用其中之一。示例和教程总是简单介绍真实的示例,而是提供多个类和过多的代码来测试一个示例函数是否返回num1+num2。
我唯一能猜到的是,这些测试框架打算从一开始就实现,为测试套件、测试运行程序和在开发开始时内置的测试用例进行规划。
组件的自动化测试必须确保正确设置属性,将这些属性在请求中发送到我们的系统,考虑到发送的参数,接收到的响应是正确的,解析的数据包括正确的信息,并且不会导致错误、不良响应或无限解析循环。
我的问题是,是否有任何方法可以自动测试现有的、广泛分布的、已建立的Flash组件,而不完全修改它以适应测试框架?还是我误解了测试框架,这是可能的?
更新:谢谢你的回复。我已经开始将我的组件集成到AsUnit中,并认为我对它如何帮助我有了很好的理解。然而,AS2 AsUnit不支持异步测试用例,而且我很难找到一个这样做的AS2单元测试框架。异步测试对此项目非常重要。有人对不同的框架有什么建议吗?谢谢!
发布于 2008-10-20 20:14:06
我们在我们的项目中使用FlexUnit,我对此非常满意。假设您的项目是以相当松散的耦合程度设计的,那么您就不需要为了测试您的代码而改变太多(如果有的话)。如果您已经在使用像凯恩贡姆或PureMVC这样的MVC框架,那么FlexUnit应该可以毫无痛苦地集成。
不过,我要说的是,由于三个原因,我在Flash/Flex单元测试方面的经验与其他语言(如Ruby或.NET )相比几乎没有那么好。首先,如此高级别的actionscript代码与UI相关,这类代码很难(如果不是不可能)进行测试。另一个原因是测试运行程序不能很好地插入连续集成环境(如CruiseControl.NET或CruiseControl.rb ),因为它需要人工运行并单击按钮。最后,单元测试的一个巨大好处是,您通常可以与覆盖分析工具(如NCover或rcov )一起运行它。如果没有修改过的编译器(如挠曲盖 ),Flash/Flex就无法进行这种分析。
发布于 2009-05-11 21:13:11
很高兴听到你和AsUnit一起去了!
AsUnit是唯一能够让您在ActionScript 2和ActionScript 3中获得一致经验的单元测试框架。它不依赖于任何外部框架--特别是Flex,而且在事后为项目创建测试应该没有真正的问题。
AsUnit的最新版本确实支持ActionScript 2中的异步测试。
http://github.com/lukebayes/asunit
发布于 2008-10-21 13:06:41
虽然我从来没有机会使用actionscript中的单元测试器,但在工作中我们创建了一个框架:
绝对不优雅,但做了(这是与AS1脚本)
https://stackoverflow.com/questions/219549
复制相似问题