单元测试代码自动化生成解决方案

简介: 在码农界有这样一个Eclipse插件——CodePro Analytix,通过这个插件可以自动批量生成单元测试代码。

写在前面的话:

鄙人星云,今年六月份,刚到北京入职了一家国企,由于刚进项目对现有的项目业务还不是很熟悉,但是领导已经下了命令,要我给现有的项目写单元测试代码,项目比较大,业务还不熟悉,如果全部手写测试代码,必然是个累死人不偿命的事情。

那么有没有更好的解决方案呢?答案自然是肯定的。

解决方案:

通过查询资料得知,在码农界有这样一个Eclipse插件——CodePro Analytix,通过这个插件可以自动批量生成单元测试代码。

CodePro Analytix是一个基于Eclipse的快速开发环境,能够自动的完成重复的任务使Java开发者快速的开发出高质量的软件。能够保证代码质量,包括代码评审、metric、设计模式、测试,等等

使用指南:

  1. CodePro Analytix 插件下载
  2. 下载后解压到一个路径下,路径中最好不要有中文。
    解压后像这样:

image

  1. 打开你的Eclipse IDE

    我用的IDE是STS——Spring 官方推出的Eclipse发行版。
  2. Help------> Install new Software
    image

5.Work With: --------> add... ------->Local...
浏览找到刚才解压的路径
image
6.选中这三个选项,然后一步一步安装即可
image
7.安装完成后重启下你的Eclipse 即可。
8.修改配置

Windows------> Perference ——————Code Pro ------->JUnit ----->Generated Code
默认是这样的:

image

  1. 但是一般我们需要修改下才符合我们常规的使用
    image

10.最后选中项目中的源码文件或者源码文件夹或项目名,右键------>Code Pro Tools----->Generate Test Case即可
image
这样,批量的单元测试代码就生成了。

接下来讲解一些注意事项:

  1. 关于JUnit报initializationError的解决方法
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
<dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>1.3</version>
            <scope>test</scope>
</dependency>

2.关于一些莫名奇妙无法处理的异常处理
比如莫名奇妙的空指针异常,可以在测试注解中添加这个值

    @Test(expected = java.lang.NullPointerException.class)

或者如果有其他的异常类似这个:

@Test(expected = org.apache.axiom.om.OMException.class)
    public void testSerialize_1()
        throws Exception {
        PostEvent fixture = new PostEvent();
        fixture.setEventName("");
        fixture.setEventData("");
        fixture.localEventNameTracker = true;
        fixture.localEventDataTracker = true;
        QName parentQName = new QName("");
        OMFactory factory = new OMLinkedListImplFactory();
        MTOMAwareXMLStreamWriter xmlWriter = new MTOMAwareOMBuilder();

        fixture.serialize(parentQName, factory, xmlWriter);

        // add additional test code here
        // An unexpected exception was thrown in user code while executing this test:
        //    org.apache.axiom.om.OMException: localname can not be null or empty
        //       at org.apache.axiom.om.impl.llom.OMElementImpl.<init>(OMElementImpl.java:135)
        //       at org.apache.axiom.om.impl.llom.OMElementImpl.<init>(OMElementImpl.java:118)
        //       at org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory.createOMElement(OMLinkedListImplFactory.java:75)
        //       at org.apache.axis2.databinding.utils.writer.MTOMAwareOMBuilder.writeStartElement(MTOMAwareOMBuilder.java:101)
        //       at org.apache.axis2.databinding.utils.writer.MTOMAwareOMBuilder.writeStartElement(MTOMAwareOMBuilder.java:92)
        //       at com.travelsky.dcsi.PostEvent.serialize(PostEvent.java:178)
        //       at com.travelsky.dcsi.PostEvent.serialize(PostEvent.java:151)
    }

看到这样的信息就添加注解:

@Test(expected = org.apache.axis2.databinding.ADBException.class)
  1. 关于断言测试常用的几种用法:
//如果result不为空返回true测试通过
 assertNotNull(result);
//第一个参数是期待结果,第二个是实际的引用对象
assertEquals(true, result.hasNext());
//支持多种数据类型
assertEquals(2, result.next());
//期待结果是null 接受一个引用对象参数
assertNull(result)

本篇完~
交流即分享,分享才能进步! 不对之处,还请各位前辈多多指教。 by 星云 *

相关文章
|
12天前
|
敏捷开发 测试技术 持续交付
探索软件测试中的自动化与持续集成
在快速迭代的软件开发环境中,自动化测试和持续集成(CI)已成为确保产品质量和加速交付的关键策略。本文将深入探讨自动化测试的基本原理、实施步骤以及它如何与持续集成流程相结合,以提高软件开发的效率和可靠性。我们将通过实际案例分析,展示自动化测试和CI的最佳实践,以及它们如何帮助企业实现更快的市场响应时间和更高的客户满意度。
53 16
|
14天前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
13天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
39 4
|
13天前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
1天前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
2天前
|
测试技术 持续交付 API
探索软件测试中的自动化:从新手到专家
在软件开发的世界中,测试是确保产品质量的关键步骤。本文将通过一个初学者的视角,介绍如何从零开始构建自动化测试框架,并逐步深入到更复杂的测试场景。我们将探讨自动化测试的优势、工具选择、以及如何有效地实施和扩展自动化测试策略。无论你是刚入门的软件测试新手,还是希望提升自动化测试技能的开发人员,这篇文章都将为你提供实用的指导和启示。
|
9天前
|
敏捷开发 Java 测试技术
软件测试中的自动化策略与实践
在快速迭代的软件开发周期中,自动化测试是确保产品质量和提升开发效率的关键。本文将深入探讨自动化测试的重要性,介绍实用的自动化测试框架,并通过一个具体的代码示例,说明如何实现一个简单的自动化测试脚本。
31 12
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
智能化软件测试:AI驱动的自动化测试策略与实践####
本文深入探讨了人工智能(AI)在软件测试领域的创新应用,通过分析AI技术如何优化测试流程、提升测试效率及质量,阐述了智能化软件测试的核心价值。文章首先概述了传统软件测试面临的挑战,随后详细介绍了AI驱动的自动化测试工具与框架,包括自然语言处理(NLP)、机器学习(ML)算法在缺陷预测、测试用例生成及自动化回归测试中的应用实例。最后,文章展望了智能化软件测试的未来发展趋势,强调了持续学习与适应能力对于保持测试策略有效性的重要性。 ####
|
17天前
|
测试技术 持续交付 Docker
探索软件测试中的自动化策略与挑战
在当今快节奏的软件开发周期中,自动化测试已成为提高产品质量和缩短上市时间的关键。然而,实施有效的自动化测试策略并非易事,它面临着技术选型、脚本维护、环境配置等一系列挑战。本文深入探讨了自动化测试的重要性,分析了常见的自动化测试工具和框架,并讨论了在构建和维护自动化测试体系过程中遇到的主要难题及其解决方案。通过案例分析,本文旨在为软件测试工程师提供实用的指导和建议,以优化他们的自动化测试实践。
|
16天前
|
监控 安全 测试技术
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性?
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性?