CN116107908A - 一种单元测试代码生成方法和装置 - Google Patents

一种单元测试代码生成方法和装置 Download PDF

Info

Publication number
CN116107908A
CN116107908A CN202310268282.2A CN202310268282A CN116107908A CN 116107908 A CN116107908 A CN 116107908A CN 202310268282 A CN202310268282 A CN 202310268282A CN 116107908 A CN116107908 A CN 116107908A
Authority
CN
China
Prior art keywords
unit test
java
parameters
unit
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310268282.2A
Other languages
English (en)
Inventor
李超
梅焕
李江岩
蔚晓青
陈丽娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202310268282.2A priority Critical patent/CN116107908A/zh
Publication of CN116107908A publication Critical patent/CN116107908A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种单元测试代码生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。该实施方式提高了单元测试代码的生成效率,提升了单元测试效率和用户体验。

Description

一种单元测试代码生成方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种单元测试代码生成方法和装置。
背景技术
单元测试主要是针对系统最基本的单元代码进行测试,开发人员需要根据代码逻辑对相应代码块进行针对性测试,虽然单元测试可以提高代码质量,但是单元测试代码的开发较为繁琐,且耗时较长。
为了解决上述问题,相关技术中设计一款后端低代码单测插件,以配置生成单元测试代码,并提供单元测试高阶功能,如mock数据(模拟数据)配置管理、多case(实例)管理以及支持自定义单测表达式。但与此同时,相关技术提供的单元测试代码生成工具中,生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致存在单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差等技术问题。
发明内容
有鉴于此,本发明实施例提供一种单元测试代码生成方法和装置,能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单元测试参数,再结合单元测试模板反向生成单元测试代码,提高了单元测试代码的生成效率,提升了单元测试代码的可维护性能,提高了单元测试代码生成的自动化程度,提升了单元测试效率和用户体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种单元测试代码生成方法,包括:
响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;
接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;
根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。
进一步地,单元测试参数包括输入参数、模拟参数和输出参数;配置单元测试所对应的单元测试参数的步骤,还包括:
获取线上业务的Java文件数据;其中,Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息;
根据单元测试对象对应的Java方法与Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法;
根据目标Java方法对应的外部方法调用信息,配置单元测试参数。
进一步地,根据单元测试对象对应的Java方法与Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法的步骤,包括:
从Java文件数据的Java方法信息中,选取参数的数据类型与根据单元测试对象对应的测试参数的数据类型一致的Java方法,作为候选Java方法;
分别计算单元测试对象对应的Java方法的代码块与候选Java方法的代码块之间的相似度,确定代码块相似度最高的候选Java方法为目标Java方法。
进一步地,获取线上业务的Java文件数据的步骤主要包括:
根据软件开发工具包对线上业务进行数据埋点,以在线上业务加载Java文件之前拦截字节码,获取线上业务的Java文件数据。
进一步地,在获取线上业务的Java文件数据的步骤之后,还包括:
对Java文件数据进行数据清洗处理。
进一步地,单元测试参数还包括测试实例参数,测试实例参数指示了不同输入参数、模拟参数和输出参数的组合。
根据本发明实施例的又一个方面,提供了一种单元测试代码生成装置,包括:
获取模块,用于响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;
配置模块,用于接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;
单元测试代码生成模块,用于根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。
进一步地,单元测试参数包括输入参数、模拟参数和输出参数;配置模块还用于:
获取线上业务的Java文件数据;其中,Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息;
根据单元测试对象对应的Java方法与Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法;
根据目标Java方法对应的外部方法调用信息,配置单元测试参数。
根据本发明实施例的另一个方面,提供了一种单元测试代码生成的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述任一种单元测试代码生成方法。
根据本发明实施例的再一个方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一种单元测试代码生成方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码的技术手段,所以克服了相关技术中,由于生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差的技术问题,进而达到能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单元测试参数,再结合单元测试模板反向生成单元测试代码,提高单元测试代码的生成效率,提升单元测试代码的可维护性能,提高单元测试代码生成的自动化程度,提升单元测试效果和用户体验的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例提供的单元测试代码生成方法的主要流程的示意图;
图2a是根据本发明又一个实施例提供的单元测试代码生成方法的主要流程的示意图;
图2b是图2a所示单元测试代码生成方法中单元测试页面的示意图;
图3是根据本发明实施例提供的单元测试代码生成装置的主要模块的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本公开的技术方案中,线上数据的采集所涉及的用户个人信息的采集、收集、更新、分析、处理、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法的用途,且不违背公序良俗。对用户个人信息采取必要措施,防止对用户个人信息数据的非法访问,维护用户个人信息安全、网络安全和国家安全。
图1是根据本发明一个实施例提供的单元测试代码生成方法的主要流程的示意图;如图1所示,本发明实施例提供的单元测试代码生成方法主要包括:
步骤S101,响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法。
单元测试,是在计算机编程中,针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。本发明实施例提供的单元测试代码生成方法中设计到的单元测试对象是java的类或方法。
具体地,本发明实施例提供的单元测试代码生成方法应用于单元测试代码自动生成插件,该插件是基于IntelliJ IDEA(一种java集成开发环境工具软件)平台开发插件可以以zip包(zip文件格式是一种数据压缩和文档储存的文件格式)或者jar包(类的归档文件,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被编译器等工具直接使用)的形式安装在IDEA软件上,提供可视化页面以供用户发起指示了单元测试对象的单元测试代码生成请求,还可基于该可视化页面配置单元测试参数,以便于后续生成单元测试代码。基于可视化页面,可在菜单栏提供多个Java的类或方法以供用户进行选择,进而发起单元测试代码生成请求。
步骤S102,接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息。
上述步骤提供了本发明实施例提供的一种配置单元测试参数的方式,基于单元测试对象、参数对应的数据类型,用户直接在单元测试配置界面中自定义参数配置信息,完成单元测试参数的配置操作,后续直接根据该单元测试参数结合单元测试模板生成单元测试代码。通过上述设置,基于可视化页面,提升了用户体验,提高了单元测试参数配置效率,进而整体上提高了单元测试代码生成效率。
进一步地,根据本发明实施例,上述单元测试参数包括输入参数、模拟参数和输出参数;上述配置单元测试所对应的单元测试参数的步骤,还包括:
获取线上业务的Java文件数据;其中,Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息;
根据单元测试对象对应的Java方法与Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法;
根据目标Java方法对应的外部方法调用信息,配置单元测试参数。
上述步骤提供了本发明实施例的另一种配置单元测试参数的方式,首先获取线上环境真实数据(即上述线上业务的Java文件数据),然后通过相似度匹配确定最适合当前单元测试对象的参数,并以该参数作为单元配置参数,通过上述设置,使得生成的单元测试代码对应的单元测试参数更符合真实的业务场景,提升了单元测试效果。
优选地,根据本发明实施例,上述根据单元测试对象对应的Java方法与Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法的步骤,包括:
从Java文件数据的Java方法信息中,选取参数的数据类型与根据单元测试对象对应的测试参数的数据类型一致的Java方法,作为候选Java方法;
分别计算单元测试对象对应的Java方法的代码块与候选Java方法的代码块之间的相似度,确定代码块相似度最高的候选Java方法为目标Java方法。
在根据线上业务的Java文件数据配置单元测试参数的过程中,优选从线上业务的Java文件数据中选取参数数据类型一致的一个或多个Java方法作为候选Java方法,这是根据线上业务数据配置单元测试参数的必要条件,即两者涉及到的参数的数据类型必须一致。然后再计算候选Java方法与当前单元测试对象对应的Java方法的代码块之间的相似度。根据本发明实施例的一具体实施方式,可直接选取相似度最高的一个候选Java方法为目标Java方法,也可以选取相似度较高的几个(具体数值根据实际情况进行确定)候选Java方法为目标Java方法。最后,以目标Java方法对应的外部方法调用信息,配置单元测试参数。其中,外部方法调用信息包括外部方法调用的参数和返回值,进一步地,外部方法调用的参数可作为所配置的单元测试参数中的输入参数,返回值可作为所配置的单元测试参数中的mock参数(输出参数),相应的输出参数是根据单元测试方法的返回值类型确定的预期结果。
确定Java方法的代码块的步骤可以通过PSI(Program Structure Interface,程序结构接口)技术来实现,具体地,PSI是通过Java对象来描述映射Java代码。
可选地,根据本发明实施例,上述获取线上业务的Java文件数据的步骤主要包括:
根据软件开发工具包对线上业务进行数据埋点,以在线上业务加载Java文件之前拦截字节码,获取线上业务的Java文件数据。
具体地,根据本发明实施例,根据SDK(Software Development Kit,软件开发工具包)进行数据埋点,如通过JavaAgent(Java代理,以Java代理的形式可以监控或重新定义应用运行中的服务)的方式提供jar包,在加载Java文件前拦截字节码并做修改,从而实现记录线上业务的Java方法名称、方法参数、方法返回值等重要信息。进一步地,还可以通过ELK(elasticsearch+Logstash+Kibana,一种日志分析系统)实现线上埋点数据的采集、传输、存储、分析、可视化查询的功能。
通过上述设置获取线上业务的Java文件数据,后续可据此配置更符合真实的业务场景的单元测试参数,以提升单元测试效果。
示例性地,根据本发明实施例,在获取线上业务的Java文件数据的步骤之后,上述方法还包括:
对Java文件数据进行数据清洗处理。
通过Java文件数据进行数据清洗处理,有助于更快速地配置单元测试参数,提高了单元测试参数的配置准确率,提高了单元测试代码的生成效率。
进一步地,根据本发明实施例,上述单元测试参数还包括测试实例参数,测试实例参数指示了不同输入参数、模拟参数和输出参数的组合。
通过配置测试实例(case)参数,组织输入参数、mock参数和输出参数的成为一个整体。一个case就是一个生成的单元测试的方法,按照配置的case生成一个完整单元测试代码,进而拓展了单元测试代码的应用场景,提高了单元测试代码的生成效率。
可选地,还可通过设置case中心以保存历史所有生成的单元测试参数数据,以便于后续进行单元测试代码的修改和维护。
步骤S103,根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。
具体地,单元测试模板与所选取的单元测试对象相对应,其构建了单元测试代码的结构,通过上述配置的单元测试对该模板进行参数填充和模板渲染,得到程序结构接口对象(PSI类),其中包括一个或多个PSI方法(外部调用方法),方法的实现由代码块来执行,因此通过PSI技术解析程序接口对象,即解析代码结构和外部方法调用,可以得到待生成单元测试代码的Java对象,进而在通过PSI将Java对象反向生成代码文件,即生成单元测试代码。
根据本发明实施例的技术方案,因为采用响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码的技术手段,所以克服了相关技术中,由于生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差的技术问题,进而达到能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单元测试参数,再结合单元测试模板反向生成单元测试代码,提高单元测试代码的生成效率,提升单元测试代码的可维护性能,提高单元测试代码生成的自动化程度,提升单元测试效果和用户体验的技术效果。
图2a是根据本发明又一个实施例提供的单元测试代码生成方法的主要流程的示意图;如图2a所示,本发明实施例提供的单元测试代码生成方法主要包括:
步骤S201,根据软件开发工具包对线上业务进行数据埋点,以在线上业务加载Java文件之前拦截字节码,获取线上业务的Java文件数据;其中,Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息。
具体地,根据本发明实施例,根据SDK(Software Development Kit,软件开发工具包)进行数据埋点,如通过JavaAgent(Java代理,以Java代理的形式可以监控或重新定义应用运行中的服务)的方式提供jar包,在加载Java文件前拦截字节码并做修改,从而实现记录线上业务的Java方法名称、方法参数、方法返回值等重要信息。进一步地,还可以通过ELK(elasticsearch+Logstash+Kibana,一种日志分析系统)实现线上埋点数据的采集、传输、存储、分析、可视化查询的功能。
通过上述设置获取线上业务的Java文件数据,后续可据此配置更符合真实的业务场景的单元测试参数,以提升单元测试效果。
示例性地,根据本发明实施例,在获取线上业务的Java文件数据的步骤之后,上述方法还包括:
对Java文件数据进行数据清洗处理。
通过Java文件数据进行数据清洗处理,有助于更快速地配置单元测试参数,提高了单元测试参数的配置准确率,提高了单元测试代码的生成效率。
步骤S202,响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法。
具体地,本发明实施例提供的单元测试代码生成方法应用于单元测试代码自动生成插件,该插件是基于IntelliJ IDEA(一种java集成开发环境工具软件)平台开发插件可以以zip包(zip文件格式是一种数据压缩和文档储存的文件格式)或者jar包(类的归档文件,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被编译器等工具直接使用)的形式安装在IDEA软件上,提供可视化页面以供用户发起指示了单元测试对象的单元测试代码生成请求,还可基于该可视化页面配置单元测试参数,以便于后续生成单元测试代码。基于可视化页面,可在菜单栏提供多个Java的类或方法以供用户进行选择,进而发起单元测试代码生成请求。
步骤S203,从Java文件数据的Java方法信息中,选取参数的数据类型与根据单元测试对象对应的测试参数的数据类型一致的Java方法,作为候选Java方法。
步骤S204,分别计算单元测试对象对应的Java方法的代码块与候选Java方法的代码块之间的相似度,确定代码块相似度最高的候选Java方法为目标Java方法。
在根据线上业务的Java文件数据配置单元测试参数的过程中,优选从线上业务的Java文件数据中选取参数数据类型一致的一个或多个Java方法作为候选Java方法,这是根据线上业务数据配置单元测试参数的必要条件,即两者涉及到的参数的数据类型必须一致。然后再计算候选Java方法与当前单元测试对象对应的Java方法的代码块之间的相似度。根据本发明实施例的一具体实施方式,可直接选取相似度最高的一个候选Java方法为目标Java方法,也可以选取相似度较高的几个(具体数值根据实际情况进行确定)候选Java方法为目标Java方法。最后,以目标Java方法对应的外部方法调用信息,配置单元测试参数。其中,外部方法调用信息包括外部方法调用的参数和返回值,进一步地,外部方法调用的参数可作为所配置的单元测试参数中的输入参数,返回值可作为所配置的单元测试参数中的mock参数(输出参数),相应的输出参数是根据单元测试方法的返回值类型确定的预期结果。
确定Java方法的代码块的步骤可以通过PSI(Program Structure Interface,程序结构接口)技术来实现,具体地,PSI是通过Java对象来描述映射Java代码。
步骤S205,根据目标Java方法对应的外部方法调用信息,配置单元测试参数。
以目标Java方法对应的外部方法调用信息,配置单元测试参数。其中,外部方法调用信息包括外部方法调用的参数和返回值,进一步地,外部方法调用的参数可作为所配置的单元测试参数中的输入参数,返回值可作为所配置的单元测试参数中的mock参数(输出参数),相应的输出参数是根据单元测试方法的返回值类型确定的预期结果。
上述步骤提供了本发明实施例的一种配置单元测试参数的方式,首先获取线上环境真实数据(即上述线上业务的Java文件数据),然后通过相似度匹配确定最适合当前单元测试对象的参数,并以该参数作为单元配置参数,通过上述设置,使得生成的单元测试代码对应的单元测试参数更符合真实的业务场景,提升了单元测试效果。
进一步地,图2b示出了本发明实施例提供的单元测试代码生成方法中的单元测试页面的示意图;如图2b所示,根据本发明实施例,还提供了另一种配置单元测试参数的方法,具体步骤包括:直接基于单元测试配置页面,接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息。
上述步骤提供了本发明实施例提供的一种配置单元测试参数的方式,基于单元测试对象、参数对应的数据类型,用户直接在单元测试配置界面中自定义参数配置信息,完成单元测试参数的配置操作,后续直接根据该单元测试参数结合单元测试模板生成单元测试代码。通过上述设置,基于可视化页面,提升了用户体验,提高了单元测试参数配置效率,进而整体上提高了单元测试代码生成效率。
示例性地,对于用户直接基于单元测试配置页面进行单元测试参数的自定义配置,本发明实施例的一具体实施方式提供了一个配置实施例,如,若被执行单元测试的对象所对应的代码如下:
Figure BDA0004133969150000131
基于上述用户选取的单元测试对象,可以获取对应测试参数的数据类型(即对应的输入、mock、输出参数的数据类型),并确定该单元测试对象对应的外部方法调用信息(即需要mock,模拟的数据)。
其次,根据选择的Java方法(即单元测试对象)推断出参数的个数、参数的类型,进而配置输入参数,示例如下:
字段名 输入值 别名
arg0 10 a1
arg1 11 b1
arg0 random a2
arg1 2*$arg0 b2
再其次,根据选择的Java方法(即单元测试对象),扫描方法内部的外部方法调用信息,这些外部方法调用信息是需要mock的参数数据,示例如下:
Figure BDA0004133969150000141
进一步地,根据选择的方法(即单元测试对象)的返回值类型,确定输入返回值(即mock参数)的预期结果作为输出参数,示例如下:
输出值 别名
20 r1
9 r2
可选地,还可以通过组合上述输入参数、mock参数和输出参数确定多种单元测试场景,即配置case参数,示例如下:
参数1 参数2 结果
a1 b1 r1
a2 b2 r2
通过上述步骤,完成了针对用户选取的单元测试对象的单元测试参数的配置,进而结合单元测试模块,根据PSI技术反向生成单元测试代码,针对上述示例的被执行单元测试的对象所对应的代码所生成的单元测试代码示例如下:
Figure BDA0004133969150000142
Figure BDA0004133969150000151
进一步地,根据本发明实施例,上述单元测试参数还包括测试实例参数,测试实例参数指示了不同输入参数、模拟参数和输出参数的组合。
通过配置测试实例(case)参数,组织输入参数、mock参数和输出参数的成为一个整体。一个case就是一个生成的单元测试的方法,按照配置的case生成一个完整单元测试代码,进而拓展了单元测试代码的应用场景,提高了单元测试代码的生成效率。
可选地,还可通过设置case中心以保存历史所有生成的单元测试参数数据,以便于后续进行单元测试代码的修改和维护。
步骤S206,根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。
具体地,单元测试模板与所选取的单元测试对象相对应,其构建了单元测试代码的结构,通过上述配置的单元测试对该模板进行参数填充和模板渲染,得到程序结构接口对象(PSI类),其中包括一个或多个PSI方法(外部调用方法),方法的实现由代码块来执行,因此通过PSI技术解析程序接口对象,即解析代码结构和外部方法调用,可以得到待生成单元测试代码的Java对象,进而在通过PSI将Java对象反向生成代码文件,即生成单元测试代码。
根据本发明实施例的技术方案,因为采用响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码的技术手段,所以克服了相关技术中,由于生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差的技术问题,进而达到能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单元测试参数,再结合单元测试模板反向生成单元测试代码,提高单元测试代码的生成效率,提升单元测试代码的可维护性能,提高单元测试代码生成的自动化程度,提升单元测试效果和用户体验的技术效果。
图3是根据本发明实施例提供的单元测试代码生成装置的主要模块的示意图;如图3所示,本发明实施例提供的单元测试代码生成装置300主要包括:
获取模块301,用于响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法。
具体地,本发明实施例提供的单元测试代码生成方法应用于单元测试代码自动生成插件,该插件安装在IDEA软件上,提供可视化页面以供用户发起指示了单元测试对象的单元测试代码生成请求,还可基于该可视化页面配置单元测试参数,以便于后续生成单元测试代码。基于可视化页面,可在菜单栏提供多个Java的类或方法以供用户进行选择,进而发起单元测试代码生成请求。
配置模块302,用于接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息。
通过上述设置,提供了本发明实施例提供的一种配置单元测试参数的方式,基于单元测试对象、参数对应的数据类型,用户直接在可视化的单元测试配置界面中自定义参数配置信息,完成单元测试参数的配置操作,后续直接根据该单元测试参数结合单元测试模板生成单元测试代码。通过上述设置,基于可视化页面,提升了用户体验,提高了单元测试参数配置效率,进而整体上提高了单元测试代码生成效率。
进一步地,根据本发明实施例,上述单元测试参数包括输入参数、模拟参数和输出参数;上述配置模块302还用于:
获取线上业务的Java文件数据;其中,Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息;
根据单元测试对象对应的Java方法与Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法;
根据目标Java方法对应的外部方法调用信息,配置单元测试参数。
通过上述设置,提供了本发明实施例的另一种配置单元测试参数的方式,首先获取线上环境真实数据(即上述线上业务的Java文件数据),然后通过相似度匹配确定最适合当前单元测试对象的参数,并以该参数作为单元配置参数,使得生成的单元测试代码对应的单元测试参数更符合真实的业务场景,提升了单元测试效果。
优选地,根据本发明实施例,上述配置模块302还用于:
从Java文件数据的Java方法信息中,选取参数的数据类型与根据单元测试对象对应的测试参数的数据类型一致的Java方法,作为候选Java方法;
分别计算单元测试对象对应的Java方法的代码块与候选Java方法的代码块之间的相似度,确定代码块相似度最高的候选Java方法为目标Java方法。
在根据线上业务的Java文件数据配置单元测试参数的过程中,优选从线上业务的Java文件数据中选取参数数据类型一致的一个或多个Java方法作为候选Java方法,这是根据线上业务数据配置单元测试参数的必要条件,即两者涉及到的参数的数据类型必须一致。然后再计算候选Java方法与当前单元测试对象对应的Java方法的代码块之间的相似度。根据本发明实施例的一具体实施方式,可直接选取相似度最高的一个候选Java方法为目标Java方法,也可以选取相似度较高的几个(具体数值根据实际情况进行确定)候选Java方法为目标Java方法。最后,以目标Java方法对应的外部方法调用信息,配置单元测试参数。其中,外部方法调用信息包括外部方法调用的参数和返回值,进一步地,外部方法调用的参数可作为所配置的单元测试参数中的输入参数,返回值可作为所配置的单元测试参数中的mock参数(输出参数),相应的输出参数是根据单元测试方法的返回值类型确定的预期结果。
确定Java方法的代码块的步骤可以通过PSI(Program Structure Interface,程序结构接口)技术来实现,具体地,PSI是通过Java对象来描述映射Java代码。
可选地,根据本发明实施例,上述配置模块302还用于:
根据软件开发工具包对线上业务进行数据埋点,以在线上业务加载Java文件之前拦截字节码,获取线上业务的Java文件数据。
具体地,根据本发明实施例,可通过JavaAgent的方式提供jar包,在加载Java文件前拦截字节码并做修改,从而实现记录线上业务的Java方法名称、方法参数、方法返回值等重要信息。进一步地,还可以通过ELK(elasticsearch+Logstash+Kibana,一种日志分析系统)实现线上埋点数据的采集、传输、存储、分析、可视化查询的功能。
通过上述设置获取线上业务的Java文件数据,后续可据此配置更符合真实的业务场景的单元测试参数,以提升单元测试效果。
示例性地,根据本发明实施例,上述单元测试代码生成装置300还包括数据清洗模块,在获取线上业务的Java文件数据的步骤之后,上述数据清洗模块用于:
对Java文件数据进行数据清洗处理。
通过Java文件数据进行数据清洗处理,有助于更快速地配置单元测试参数,提高了单元测试参数的配置准确率,提高了单元测试代码的生成效率。
进一步地,根据本发明实施例,上述单元测试参数还包括测试实例参数,测试实例参数指示了不同输入参数、模拟参数和输出参数的组合。
通过配置测试实例(case)参数,组织输入参数、mock参数和输出参数的成为一个整体。一个case就是一个生成的单元测试的方法,按照配置的case生成一个完整单元测试代码,进而拓展了单元测试代码的应用场景,提高了单元测试代码的生成效率。
可选地,还可通过设置case中心以保存历史所有生成的单元测试参数数据,以便于后续进行单元测试代码的修改和维护。
单元测试代码生成模块303,用于根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。
具体地,单元测试模板与所选取的单元测试对象相对应,其构建了单元测试代码的结构,通过上述配置的单元测试对该模板进行参数填充和模板渲染,得到程序结构接口对象(PSI类),其中包括一个或多个PSI方法(外部调用方法),方法的实现由代码块来执行,因此通过PSI技术解析程序接口对象,即解析代码结构和外部方法调用,可以得到待生成单元测试代码的Java对象,进而在通过PSI将Java对象反向生成代码文件,即生成单元测试代码。
根据本发明实施例的技术方案,因为采用响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码的技术手段,所以克服了相关技术中,由于生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差的技术问题,进而达到能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单元测试参数,再结合单元测试模板反向生成单元测试代码,提高单元测试代码的生成效率,提升单元测试代码的可维护性能,提高单元测试代码生成的自动化程度,提升单元测试效果和用户体验的技术效果。
图4示出了可以应用本发明实施例的单元测试代码生成方法或单元测试代码生成装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如单元测试类组件、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所(进行单元测试代码生成/进行数据处理)的服务器(仅为示例)。该服务器可以对接收到的单元测试代码生成请求等数据进行分析等处理,并将处理结果(例如生成的单元测试代码--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的单元测试代码生成方法一般由服务器405执行,相应地,单元测试代码生成装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统500的结构示意图。图5示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、配置模块和单元测试代码生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“用于响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括java的类或方法的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码。
根据本发明实施例的技术方案,因为采用响应于用户发起的单元测试代码生成请求,确定生成请求指示的单元测试对象,获取单元测试对象对应的测试参数的数据类型;其中,单元测试对象包括Java的类或方法;接收用户在单元测试配置页面输入的参数配置信息,根据参数配置信息、单元测试对象和数据类型配置单元测试所对应的单元测试参数;其中,参数配置信息中指示了单元测试对象对应的外部方法调用信息;根据单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据Java对象反向生成单元测试代码的技术手段,所以克服了相关技术中,由于生成单元测试代码的参数都是默认值,在执行单元测试之前仍然需要编码人员修改代码,导致单元测试代码的可维护性能较低,单元测试效果较差,单元测试代码的生成效率较低,用户体验差的技术问题,进而达到能够基于直接根据用户指示的单元测试对象,在可视化的单元配置页面中配置相应的单元测试参数,再结合单元测试模板反向生成单元测试代码,提高单元测试代码的生成效率,提升单元测试代码的可维护性能,提高单元测试代码生成的自动化程度,提升单元测试效果和用户体验的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

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.根据权利要求2所述的单元测试代码生成方法,其特征在于,在所述获取所述线上业务的Java文件数据的步骤之后,还包括:
对所述Java文件数据进行数据清洗处理。
6.根据权利要求2所述的单元测试代码生成方法,其特征在于,所述单元测试参数还包括测试实例参数,所述测试实例参数指示了不同输入参数、模拟参数和输出参数的组合。
7.一种单元测试代码生成装置,其特征在于,包括:
获取模块,用于响应于用户发起的单元测试代码生成请求,确定所述生成请求指示的单元测试对象,获取所述单元测试对象对应的测试参数的数据类型;其中,所述单元测试对象包括Java的类或方法;
配置模块,用于接收用户在单元测试配置页面输入的参数配置信息,根据所述参数配置信息、所述单元测试对象和所述数据类型配置单元测试所对应的单元测试参数;其中,所述参数配置信息中指示了所述单元测试对象对应的外部方法调用信息;
单元测试代码生成模块,用于根据所述单元测试参数对单元测试模板进行参数填充和模板渲染,得到程序结构接口对象,根据程序结构接口技术对所述程序接口对象进行解析处理,得到待生成的单元测试代码对应的Java对象,并根据所述Java对象反向生成单元测试代码。
8.根据权利要求7所述的单元测试代码生成装置,其特征在于,
所述单元测试参数包括输入参数、模拟参数和输出参数;所述配置模块还用于:
获取线上业务的Java文件数据;其中,所述Java文件数据包括线上业务对应的Java方法信息和Java方法对应的外部方法调用信息;
根据所述单元测试对象对应的Java方法与所述Java文件数据中线上业务对应的Java方法信息进行相似度匹配,确定线上业务对应的目标Java方法;
根据所述目标Java方法对应的外部方法调用信息,配置所述单元测试参数。
9.一种单元测试代码生成的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN202310268282.2A 2023-03-15 2023-03-15 一种单元测试代码生成方法和装置 Pending CN116107908A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310268282.2A CN116107908A (zh) 2023-03-15 2023-03-15 一种单元测试代码生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310268282.2A CN116107908A (zh) 2023-03-15 2023-03-15 一种单元测试代码生成方法和装置

Publications (1)

Publication Number Publication Date
CN116107908A true CN116107908A (zh) 2023-05-12

Family

ID=86254546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310268282.2A Pending CN116107908A (zh) 2023-03-15 2023-03-15 一种单元测试代码生成方法和装置

Country Status (1)

Country Link
CN (1) CN116107908A (zh)

Similar Documents

Publication Publication Date Title
CN109684188B (zh) 测试方法和装置
CN109976999B (zh) 测试用例覆盖率的度量方法和度量装置
CN111061956A (zh) 用于生成信息的方法和装置
CN109901987B (zh) 一种生成测试数据的方法和装置
CN110858172A (zh) 一种自动化测试代码生成方法和装置
CN108933695B (zh) 用于处理信息的方法和装置
CN109766127B (zh) 用于更新应用程序版本信息的方法
CN111221727B (zh) 测试方法、装置、电子设备和计算机可读介质
CN110659206A (zh) 基于微服务的模拟架构建立方法、装置、介质及电子设备
CN108694120B (zh) 测试服务组件的方法和装置
CN111125503B (zh) 用于生成信息的方法和装置
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN115454956A (zh) 日志生成方法、装置、电子设备及存储介质
CN111026629A (zh) 一种测试脚本自动生成的方法和装置
CN115526587A (zh) 一种海关报文的生成方法和装置
CN111367791B (zh) 一种生成测试用例的方法、装置、介质和电子设备
CN116107908A (zh) 一种单元测试代码生成方法和装置
CN111131354B (zh) 用于生成信息的方法和装置
CN111079185B (zh) 数据库信息处理的方法、装置、存储介质及电子设备
CN112579428A (zh) 接口测试的方法、装置、电子设备和存储介质
CN113342633B (zh) 一种性能测试方法和装置
CN111767447A (zh) 用于确定用户流量路径的方法和装置
CN113360380B (zh) 基于流程图生成数据案例的方法及装置
CN112783753B (zh) 流数据处理系统的测试方法和装置
CN109614328B (zh) 用于处理测试数据的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination