【技术实现步骤摘要】
一种单元测试代码生成方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种单元测试代码生成方法和装置。
技术介绍
[0002]单元测试主要是针对系统最基本的单元代码进行测试,开发人员需要根据代码逻辑对相应代码块进行针对性测试,虽然单元测试可以提高代码质量,但是单元测试代码的开发较为繁琐,且耗时较长。
[0003]为了解决上述问题,相关技术中设计一款后端低代码单测插件,以配置生成单元测试代码,并提供单元测试高阶功能,如mock数据(模拟数据)配置管理、多case(实例)管理以及支持自定义单测表达式。但与此同时,相关技术提供的单元测试代码生成工具中,生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致存在单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差等技术问题。
技术实现思路
[0004]有鉴于此,本专利技术实施例提供一种单元测试代码生成方法和装置,能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单 ...
【技术保护点】
【技术特征摘要】
1.一种单元测试代码生成方法,其特征在于,包括:响应于用户发起的单元测试代码生成请求,确定所述生成请求指示的单元测试对象,获取所述单元测试对象对应的测试参数的数据类型;其中,所述单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据所述参数配置信息、所述单元测试对象和所述数据类型配置单元测试所对应的单元测试参数;其中,所述参数配置信息中指示了所述单元测试对象对应的外部方法调用信息;根据所述单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对所述程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据所述Java对象反向生成单元测试代码。2.根据权利要求1所述的单元测试代码生成方法,其特征在于,所述单元测试参数包括输入参数、模拟参数和输出参数;所述配置单元测试所对应的单元测试参数的步骤,还包括:获取线上业务的Java文件数据;其中,所述Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息;根据所述单元测试对象对应的Java方法与所述Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法;根据所述目标Java方法对应的外部方法调用信息,配置所述单元测试参数。3.根据权利要求2所述的单元测试代码生成方法,其特征在于,所述根据所述单元测试对象对应的Java方法与所述Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法的步骤,包括:从所述Java文件数据的Java方法信息中,选取参数的数据类型与根据所述单元测试对象对应的测试参数的数据类型一致的Java方法,作为候选Java方法;分别计算所述单元测试对象对应的Java方法的代码块与所述候选Java方法的代码块之间的相似度,确定代码块相似度最高的候选Java方法为目标Java方法。4.根据权利要求2所述的单元测试代码生成方法,其特征在于,所述获取线上业务的Java文件数据的步骤主要包括:根据软件开发工具包对线上业务进行数据埋点,以在线上业务加载Java文件之前拦截字节码,获取所述线上业务的Java文件数据。5...
【专利技术属性】
技术研发人员:李超,梅焕,李江岩,蔚晓青,陈丽娟,
申请(专利权)人:北京京东世纪贸易有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。