技术特征:
1.一种单元测试代码生成方法,其特征在于,包括:获取面向目标单元测试对象的单元测试代码生成请求,所述单元测试代码生成请求中携带有所述目标单元测试对象的对象标识、入参信息和出参信息,所述入参信息包含目标入参和所述目标入参对应的测试数据,所述出参信息包含目标出参和所述目标出参对应的测试数据,所述目标单元测试对象包括待测试源代码中的类和/或方法,所述待测试源代码涉及数据库操作;基于出入参与数据库中字段的映射关系,获取所述数据库中与所述入参信息和所述出参信息相关的数据表中的目标字段和所述目标字段对应的数据的数据结构信息;将所述目标字段和所述数据结构信息注入至单元测试模板中,生成结构化查询语言sql映射文件,所述sql映射文件包含数据库操作语句,并将所述入参信息和所述出参信息写入json文本中,所述json文本用于存储和表示数据;按照java编码规范对所述json文本及单元测试模板进行编码,生成所述目标单元测试对象的单元测试工程,所述单元测试工程包含单元测试代码和xml文件,所述xml文件包含所述sql映射文件中的信息和相关组件的配置注入信息。2.根据权利要求1所述的单元测试代码生成方法,其特征在于,所述获取面向目标单元测试对象的单元测试代码生成请求,包括:接收作用于单元测试代码生成界面上第一控件的第一交互操作,所述第一控件用于触发单元测试代码的生成;响应所述第一交互操作,获取面向目标单元测试对象的单元测试代码生成请求。3.根据权利要求2所述的单元测试代码生成方法,其特征在于,所述单元测试代码生成界面中还展示可供选择的入参和可供选择的出参,其中,所述单元测试代码生成界面还包含第一区域和第二区域,所述可供选择的入参在所述第一区域显示,所述可供选择的出参在所述第二区域显示,在接收所述第一交互操作之前还包括:响应于针对所述可供选择的入参的第一选择操作,确定所述目标入参为所述第一选择操作对应的入参,并在所述第一区域区别显示所述目标入参;响应于针对所述可供选择的出参的第二选择操作,确定所述目标出参为所述第二选择操作对应的出参,并在所述第二区域区别显示所述目标出参。4.根据权利要求3所述的单元测试代码生成方法,其特征在于,所述第一区域还显示所述可供选择的入参对应的第一测试数据,所述第二区域还显示所述可供选择的出参对应的第二测试数据,所述第一测试数据和所述第二测试数据均可编辑。5.根据权利要求4所述的单元测试代码生成方法,其特征在于,还包括:响应针对所述第一测试数据的第一编辑操作,确定所述目标入参对应的测试数据包含所述第一编辑操作编辑的测试数据,所述第一编辑操作用于调整所述第一测试数据的字段名称、数据大小、数据长度和数据类型中的至少一项;和/或,响应针对所述第二测试数据的第二编辑操作,确定所述目标出参对应的测试数据包含所述第二编辑操作编辑的测试数据,所述第二编辑操作用于调整所述第二测试数据的字段名称、数据大小、数据长度和数据类型中的至少一项。6.根据权利要求4所述的单元测试代码生成方法,其特征在于,所述可供选择的入参的命名,和,所述可供选择的出参的命名,均遵循数据字典;且,所述第一测试数据和所述第二
测试数据均是基于所述数据字典为不同类型的参数生成的测试数据。7.根据权利要求3所述的单元测试代码生成方法,其特征在于,所述单元测试代码生成界面中还展示候选单元测试对象,其中,所述单元测试代码生成界面还包含第三区域,所述候选单元测试对象在所述第三区域显示,在确定所述目标入参和所述目标出参之前,还包括:响应针对所述候选单元测试对象的第三选择操作,确定所述目标单元测试对象为所述第三选择操作选择的单元测试对象,并在所述第三区域区别显示所述目标单元测试对象。8.根据权利要求7所述的单元测试代码生成方法,其特征在于,还包括:所述候选单元测试对象是响应获取到所述待测试源代码,识别得到的所述待测试源代码中包含的单元测试对象;和/或,所述候选单元测试对象显示在所述单元测试代码生成界面中,或者,所述候选单元测试对象包含在清单文件中。9.根据权利要求2至8中任一项所述的单元测试代码生成方法,其特征在于,所述单元测试代码生成界面中还包括第二控件,所述第二控件用于获取所述待测试源代码。10.一种单元测试代码生成装置,包括:获取模块,用于获取面向目标单元测试对象的单元测试代码生成请求,所述单元测试代码生成请求中携带有所述目标单元测试对象的对象标识、入参信息和出参信息,所述入参信息包含目标入参和所述目标入参对应的测试数据,所述出参信息包含目标出参和所述目标出参对应的测试数据,所述目标单元测试对象包括待测试源代码中的类和/或方法,所述待测试源代码涉及数据库操作;基于出入参与数据库中字段的映射关系,获取所述数据库中与所述入参信息和所述出参信息相关的数据表中的目标字段和所述目标字段对应的数据的数据结构信息;处理模块,用于将所述目标字段和所述数据结构信息注入至单元测试模板中,生成结构化查询语言sql映射文件,所述sql映射文件包含数据库操作语句,并将所述入参信息和所述出参信息写入json文本中,所述json文本用于存储和表示数据;编码模块,用于按照java编码规范对所述json文本及单元测试模板进行编码,生成所述目标单元测试对象的单元测试工程,所述单元测试工程包含单元测试代码和xml文件,所述xml文件包含所述sql映射文件中的信息和相关组件的配置注入信息。11.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至9任一项所述的方法。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至9任一项所述的方法。13.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至9中任一项所述方法。
技术总结
本申请提供一种单元测试代码生成方法、装置、设备及存储介质,可用于大数据领域。获取面向目标单元测试对象的单元测试代码生成请求,基于出入参与数据库中字段的映射关系,连接数据库来获取数据库中与入参信息和出参信息相关的数据表中的目标字段和目标字段对应的数据的数据结构信息,便于对数据库进行相关的测试操作。另外,通过将目标字段和数据结构信息注入至单元测试模板中,可自动生成sql映射文件,sql映射文件包含数据库操作语句,并将入参信息和出参信息写入json文本。最后,通过按照java编码规范对json文本及单元测试模板进行编码,生成目标单元测试对象的单元测试工程,无需进行额外的手工编码,提升了单元测试代码开发效率、单元测试效果较好。单元测试效果较好。单元测试效果较好。
技术研发人员:曾晶 胡鹏 宛玉茹
受保护的技术使用者:中国银行股份有限公司
技术研发日:2023.07.07
技术公布日:2023/10/11