[发明专利]单元测试代码自动生成方法、装置、存储介质及设备在审
申请号: | 202210066120.6 | 申请日: | 2022-01-20 |
公开(公告)号: | CN114356783A | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 梁子健;陈禹旭;崔焱;代昊琦;康旖;刘明伟;刘竹青;任昊文 | 申请(专利权)人: | 南方电网数字电网研究院有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30;G06F8/73 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苟冬梅 |
地址: | 510000 广东省广州市黄*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 单元测试 代码 自动 生成 方法 装置 存储 介质 设备 | ||
本发明实施例公开了单元测试代码自动生成方法、装置、存储介质及设备,涉及单元测试技术领域,能有效解决当前编写单元测试代码占用程序员工作量大的问题。该方法包括:获得用户在Java类的至少一个待测方法上标注的Swagger注解和Cases注解,Cases注解包括针对待测方法的至少一个测试用例;扫描Java类中的所有的Swagger注解和Cases注解,并生成与Java类对应的定义文件,定义文件包括至少一个待测方法的定义信息;根据定义文件和预先获得的单元测试代码模板,生成与测试用例一一对应的单元测试代码。
技术领域
本发明涉及单元测试技术领域,具体涉及一种单元测试代码自动生成方法、装置、存储介质及设备。
背景技术
在编写java代码的时候,需要尽可能多的为编写的业务代码(类或方法等)配套编写相关的单元测试代码,这些单元测试代码会在构建过程中的某个节点被触发执行,以快速验证业务代码的正确性,这样还能保证在未来对业务代码的修改过程不会破坏原本的预期。
具体而言,单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。比如对函数abs(),可以编写出以下几个测试用例:输入非数值类型,比如None、[]、{},期待抛出TypeError。把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。单元测试通过后的意义在于:如果我们对abs()函数代码做了修改,只需要再跑一遍单元测试,如果通过,说明我们的修改不会对abs()函数原有的行为造成影响,如果测试不通过,说明我们的修改与原有行为不一致,要么修改函数代码,要么修改测试用例。
因此,单元测试对于软件开发来说是非常重要的。然而,在现实工作中,经常会人为的忽略单元测试代码的编写,这是因为编写单元测试代码需要大量的时间,这让原本就忙于编写业务代码的程序员根本无暇顾及。
发明内容
本发明实施例提供一种单元测试代码自动生成方法、装置、存储介质及设备,能有效解决当前编写单元测试代码占用程序员工作量大的问题。
为了解决上述问题,从第一方面,本发明实施例公开了一种单元测试代码的自动生成方法,所述方法包括:
获得用户在Java类的至少一个待测方法上标注的Swagger注解和Cases注解,所述Cases注解包括针对所述待测方法的至少一个测试用例;
扫描所述Java类中的所有的所述Swagger注解和所述Cases注解,并生成与所述Java类对应的定义文件,所述定义文件包括至少一个所述待测方法的定义信息;
根据所述定义文件和预先获得的单元测试代码模板,生成与所述测试用例一一对应的单元测试代码。
进一步的,所述方法还包括:
在生成与所述Java类对应的定义文件后,将所述定义文件存储在所述Java类对应的第一目录下,其中,所述第一目录与用于存储所述Java类的目录不同;和
在生成与所述测试用例一一对应的单元测试代码后,将所述单元测试代码存储在所述Java类对应的第二目录下,其中,所述第二目录与所述第一目录以及存储有所述Java类的目录均不同。
进一步的,所述方法还包括:
接收用户通过Java构建工具在预设阶段编译的任务一;其中,所述任务一为扫描所述Java类中的所有的所述Swagger注解和所述Cases注解,并生成与所述Java类对应的定义文件;
所述扫描所述Java类中的所有的所述Swagger注解和所述Cases注解,并生成与所述Java类对应的定义文件的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南方电网数字电网研究院有限公司,未经南方电网数字电网研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210066120.6/2.html,转载请声明来源钻瓜专利网。