Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
现有Flash组件的自动测试(非UI)_Flash_Unit Testing_Actionscript_Automation_Automated Tests - Fatal编程技术网

现有Flash组件的自动测试(非UI)

现有Flash组件的自动测试(非UI),flash,unit-testing,actionscript,automation,automated-tests,Flash,Unit Testing,Actionscript,Automation,Automated Tests,我构建并维护一组Flash组件,这些组件分发给出版商,并允许他们与我们的系统集成。目前该组件没有UI,只包含用于查询系统服务器、解析响应和修改查询中发送的参数的编译代码。Flex和CS3都有As2版本和AS3版本。我们的典型工作流程如下: 1.)加载组件 2.)在组件上设置参数 3.)告诉组件查询我们的系统 4.)等待表示已接收并解析响应的事件 5.)调用组件上的方法以检索和使用解析的数据 我们最近一直在谈论自动化这些组件的测试,而像AsUnit和FlexUnit这样的框架似乎引起了很多热议。然

我构建并维护一组Flash组件,这些组件分发给出版商,并允许他们与我们的系统集成。目前该组件没有UI,只包含用于查询系统服务器、解析响应和修改查询中发送的参数的编译代码。Flex和CS3都有As2版本和AS3版本。我们的典型工作流程如下:

1.)加载组件 2.)在组件上设置参数 3.)告诉组件查询我们的系统 4.)等待表示已接收并解析响应的事件 5.)调用组件上的方法以检索和使用解析的数据

我们最近一直在谈论自动化这些组件的测试,而像AsUnit和FlexUnit这样的框架似乎引起了很多热议。然而,我一直无法理解如何有效地使用其中一个。示例和教程总是略过实际示例,而是提供多个类和大量代码来测试示例函数是否返回num1+num2

我能猜到的唯一一件事是,这些测试框架打算从一开始就实现,并在开发开始时内置测试套件、测试运行程序和测试用例的规划

我们的组件的自动测试必须确保属性设置正确,这些属性在请求中发送到我们的系统,收到的响应考虑到发送的参数是正确的,解析的数据包含正确的信息,并且没有错误、错误的响应或无限的解析循环

我的问题是,是否有任何方法可以自动测试现有的、广泛分布的、已建立的Flash组件,而不需要完全修改它以适应测试框架?或者我误解了测试框架,而这已经是可能的了


更新:感谢您的回复。我已经开始将我的组件与AsUnit集成,并且认为我非常了解它如何帮助我。然而,AS2 AsUnit不支持异步测试用例,我很难找到一个支持异步测试用例的AS2单元测试框架。异步测试对这个项目非常重要。有人对不同的框架有什么建议吗?谢谢

我们在项目中使用FlexUnit,我对此非常满意。假设您的项目是在相当松散的耦合度下设计的,那么您根本不需要为了测试代码而进行太多的更改(如果有的话)。如果您已经在使用像or这样的MVC框架,FlexUnit应该可以轻松集成


然而,我要说的是,我在Flash/Flex单元测试方面的经验并不像在Ruby或.NET等其他语言方面那样积极,原因有三。首先,如此高度的actionscript代码与UI相关,这种代码即使不是不可能测试,也是很困难的。另一个原因是测试运行程序不适合插入到持续集成环境中,例如或因为它需要人工运行并单击按钮。最后,单元测试的一个巨大好处通常是,您可以将其与覆盖率分析工具(如或)一起运行。如果没有经过修改的编译器,Flash/Flex不适合这种分析,例如。

虽然我从来没有机会在actionscript中使用单元测试仪,但在工作中我们创建了一个框架,它:

  • 在测试应用程序中编译脚本,在我们使用flex的例子中
  • 设置定时器(看门狗)应用程序,以防环路故障
  • 运行应用程序,该应用程序依次:
    • 连接到PHP后端以获取测试用例
    • 将测试输入到组件
    • 阅读结果并将其发回
  • 看门狗将在任何先发生的情况下启动并终止应用程序:
    • 计时器超时(合理超时)
    • 应用程序返回结果
  • 如果要运行其他测试,请转到2

  • 绝对不优雅,但完成了任务(这是AS1脚本)

    很高兴听到您使用AsUnit

    AsUnit是唯一一个可以让您在ActionScript2和ActionScript3中获得一致体验的单元测试框架。它不依赖于任何外部框架,尤其是Flex,并且在事后为您的项目创建测试应该不会有任何实际问题

    AsUnit的最新版本确实支持ActionScript 2中的异步测试。as25分支可在以下位置找到: