半自动化单测实现

针对传统单元测试效率低下和测试方法间数据无法有效传递的问题,本文介绍了一种半自动化的单测实现方案——秒单测系统。该系统通过一次启动多次执行的方式,实现了测试方法间的参数传递和数据串联,极大提升了单元测试的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

半自动化单测实现

——秒单测系统

目前单测存在的问题

  1. 效率过低

    每启动一次单测(test**方法)需要经过编译、spring初始化、Dubbo链接、ZK链接、Kafka链接、Redis链接等等操作。需要耗费一分钟以上的时间,而且每次的数据都需要硬编码,效率很低。

  2. 单测的方法之间过于分散无法串联

    举例:进件、发影响件、导标、放款、回调(生成工单)、完成或取消工单是一个主流程,流程进行完之后数据就算废了,需要重新开始整个流程。目前的单测无法做到这些方法的衔接和数据传递。

秒单测介绍

  1. 目标

    一次启动、多次执行、传递参数、节约时间、提升效率

  2. 界面

    介绍:

    1. 测试类:下拉列表列出所有继承TestBase的测试类
    2. 测试方法:下拉列表列出当前测试类中所有的测试方法(被@Test修饰),可随测试类的选择进行联动
    3. 参数:当前测试类需要传入的参数,随测试方法的选择进行联动
    4. 输出:点击执行后执行结果,及控制台打印的所有信息。
    5. 执行:选择好测试类、测试方法,填好参数后点击执行。
    6. 清空输出:清空输出文本域。
  3. 演示

    见附件视频

  4. 原理

    初始化:

    1. 启动TestBase.main方法时,初始化spring,初始化各种连接。
    2. 获取继承了TestBase的类和所有@Test方法,放在List中。
    3. 把List传递给swing,创建各组件,填充数据,然后绘制窗口。

    调用:

    1. 根据选择的测试类,测试方法和参数获得bean和method。
    2. 使用反射调用,返回结果。
    3. 创建ByteArrayOutputStream和PrintStream,用来劫持System.out,所有的输出都会返回到文本域中

如何接入

  1. 所有的单测方法依然正常编写(org.junit.Test注解的方法),所不同的是可以在方法中添加参数(添加参数后暂时不能再使用junit运行)。
  2. 继承TestBase类
  3. 启动TestBase的main方法

后期优化

  1. 测试类和测试方法显示可自定义排序,或根据热度自动排序,提高效率。
  2. 参数可以传递传递各种类型(目前仅限于String,类型转换在各单测方法中执行),参数的显示采用动态文本框,增加参数个数和类型校验。
  3. 引入Parameterized,使Junit单测和本系统完全兼容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值