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

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

相关文章
|
6月前
|
前端开发 测试技术 API
测试金字塔:别再只盯着UI自动化了
测试金字塔:别再只盯着UI自动化了
611 116
|
6月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
498 116
|
6月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
6月前
|
人工智能 自然语言处理 JavaScript
利用MCP Server革新软件测试:更智能、更高效的自动化
MCP Server革新软件测试:通过标准化协议让AI实时感知页面结构,实现自然语言驱动、自适应维护的自动化测试,大幅提升效率,降低脚本开发与维护成本,推动测试左移与持续测试落地。
|
7月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
538 1
|
6月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
524 114
|
8月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
8月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
784 0
|
6月前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。

热门文章

最新文章

下一篇
开通oss服务