你好,游客 登录 注册 搜索
阅读内容

单元测试框架 Arquillian

运行环境:
授权方式:BSD
软件大小:M
下载量:
更新日期:2013-07-27
来源地址:
联系作者:Linux

Arquillian 可让你在远程或者嵌入式的容器里测试业务逻辑,同时可作为一个压缩包发布到容器中,并通过客户端来进行交互测试。

Arquillian是一个集成测试、功能测试平台,可用于Java中间件的测试。Arquillian的主要目的是简化集成测试和功能测试的编写,让它们能像单元测试一样简单,Arquillian能在运行时环境里进行测试,不需要开发人员在测试里处理运行时环境。

Arquillian能集成Java EE容器(像JBoss AS和GlassFish)和Servlet容器(比如Tomcat和Jetty),也可以在云服务里运行测试。对容器的支持能让开发人员针对各种技术平台进行测试,包括Java EE 5和6、Servlet环境、OSGi、嵌入式EJB和独立的CDI。

Arquillian

 

Arquillian 是一个可以方便的在现有类基础性扩展测试用例,基于 JUnit 。

示例代码:

@RunWith(org.jboss.arquillian.junit.Arquillian.class)
public class TemperatureConverterTestCase {
  @Deployment
  public static JavaArchive createTestArchive() {
      return Archives.create("test.jar", JavaArchive.class)
        .addClasses(TemperatureConverter.class, TemperatureConverterBean.class);
  }
}

Arquillian本身没有子项目。相反,它把那些能插入核心平台的模块组织成了网络图的形式。这么安排能很好地集成Arquillian,无论是从内部还是从外部。事实上,我们更希望项目能为他们自己的Arquillian扩展模块提供服务,因为这样集成得更紧密,也能和项目的发布保持同步。

目前有五类模块:

    1. 容器适配器
    2. 测试增强器
    3. 测试运行器
    4. 扩展模块
    5. 工具

Arquillian还集成了三个ShrinkWrap模块:归档文件、描述符和解析器。

容器适配器是Arquillian里最常见的模块类型,因为我们打算支持所有主要的Java容器(也就是服务器),最终也会支持一些非Java的服务器。项目目前为十二款容器提供了适配器,包括JBoss AS、GlassFish、Apache Tomcat、Jetty、WebLogic Server、Websphere AS,还有OpenShift和CloudBees这两个云提供程序。这些适配器都提供了三种管理方式(嵌入式、管理式和远程的),而且覆盖好几个主要发布版本。这就有很多适配器了:)

另一个主要模块是Arquillian Drone及其配套组件Arquillian Graphene。有了这些扩展模块,搭建、管理Selenium、WebDriver及其他浏览器驱动器就能省去所有的麻烦。你需要做的只是把浏览器API注入到你的测试里,并给它发送命令。通过把应用部署和浏览器控制集成在一起,你完全可以进行端到端的测试。OpenShift前不久宣布集成了SauceLabs,这能让你从运行在云里的Jenkins上,用Arquillian执行跨平台的浏览器测试。

和Drone有些类似的扩展模块是Android扩展,它在设备上安装了应用程序,然后会控制Android的UI,而不是浏览器。

还有两个模块刚刚开始,我们正密切关注着。一个是Arquillian Persistence Extension,它为DBUnit提供了声明式的控制和附加组件;另一个是Arquillian Spring Extension,它允许Spring开发人员用Arquillian替换Spring的测试框架,并能访问所有的Arquillian扩展模块,特别是Drone。Google Summer of Code项目目前就是在开发Arquillian Spring Extension。

最后要提一下的是用于JBoss Forge的Arquillian插件,这个模块提供了平台的入口点。简单说来,想要在你的项目里搭建Arquillian,没有比这更快的方式了,只需要一条命令就可以搞定。

推荐教程:

Arquillian 使用指南  http://www.linuxidc.com/Linux/2013-07/87941.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款