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

简介: 在码农界有这样一个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 星云 *

相关文章
|
2月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
127 8
|
8天前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
61 35
|
8天前
|
JavaScript 前端开发 Java
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
36 16
|
25天前
|
数据挖掘 测试技术 项目管理
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程化管理缺陷、低代码接口自动化测试和 CI/CD,以及基于迭代的测试管理和测试用时的成本计算等,践行敏捷测试。
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
|
2月前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
59 13
|
2月前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
89 17
|
2月前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
|
2月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
2月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
85 4
|
2月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
58 4