单元测试的方法、装置、电子设备及介质与流程

文档序号:37351561发布日期:2024-03-18 18:32阅读:10来源:国知局
单元测试的方法、装置、电子设备及介质与流程

本发明涉及软件开发,尤其是涉及一种单元测试的方法、装置、电子设备及介质。


背景技术:

1、在面对复杂项目和多种业务场景时,开发人员一般会使用junit进行单元测试,但是常常会遇到各种问题。首先由于项目复杂性较高,单元测试需要依赖多个模块,比如数据库、消息队列(mq)、redis以及第三方接口等等,导致每次进行单元测试时都需要启动整个容器,成本较高且耗时,往往一个单元测试的运行时间需要数分钟,无法高效地帮助开发人员定位问题。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种单元测试的方法、装置、电子设备及介质,以提高了单元测试的效率和质量。

2、为了实现上述目的,本发明实施例采用的技术方案如下:

3、第一方面,本发明实施例提供了一种单元测试的方法,包括:创建项目环境的相关依赖项和工具类;其中,相关依赖项至少包括:dbunit、spock和jacoco;工具类至少包括:dbunit注解以及mapperutil工具类;基于spock的注解创建数据表,并基于dbunit注解将测试数据导入到数据表中;基于mapperutil工具类获取mapper对象实例;基于数据表、mapper对象实例和spock标签进行单元测试。

4、在一种实施方式中,基于dbunit注解将测试数据导入到数据表中,包括:通过dbunit注解的content属性导入多条测试数据到数据表中;或者,通过xml或csv的形式批量导入测试数据到数据表中。

5、在一种实施方式中,基于mapperutil工具类获取mapper对象实例,包括:基于mapperutil工具类导入mapper的实体类,并以sqlsession的方式创建mapper对象实例。

6、在一种实施方式中,上述方法还包括:创建内存数据库,并将不同单元测试的测试数据保存至对应的内存数据库中。

7、在一种实施方式中,上述方法还包括:基于jacoco进行单元测试覆盖率的统计,并基于统计结果对未覆盖到的代码重新编写单元测试。

8、第二方面,本发明实施例提供了一种单元测试的装置,包括:环境创建模块,用于创建项目环境的相关依赖项和工具类;其中,相关依赖项至少包括:dbunit、spock和jacoco;工具类至少包括:dbunit注解以及mapperutil工具类;数据导入模块,用于基于spock的注解创建数据表,并基于dbunit注解将测试数据导入到数据表中;实例获取模块,用于基于mapperutil工具类获取mapper对象实例;单元测试模块,用于基于数据表、mapper对象实例和spock标签进行单元测试。

9、在一种实施方式中,上述数据导入模块,还用于:通过dbunit注解的content属性导入多条测试数据到数据表中;或者,通过xml或csv的形式批量导入测试数据到数据表中。

10、在一种实施方式中,上述实例获取模块,还用于:基于mapperutil工具类导入mapper的实体类,并以sqlsession的方式创建mapper对象实例。

11、第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面提供的任一项的方法的步骤。

12、第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面提供的任一项的方法的步骤。

13、本发明实施例带来了以下有益效果:

14、本发明实施例提供的上述单元测试的方法、装置、电子设备及介质,首先创建项目环境的相关依赖项(dbunit、spock和jacoco)和工具类(dbunit注解以及mapperutil工具类);其次基于spock的注解创建数据表,并基于dbunit注解将测试数据导入到数据表中;然后基于mapperutil工具类获取mapper对象实例;最后基于数据表、mapper对象实例和spock标签进行单元测试。上述方法通过mapperutil工具类启动mapper对象实例,通过dbunit工具进行数据可访问,不需要依赖spring容器,有效减少了单元测试的启动时间,提高了单元测试的效率和质量。

15、本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

16、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。



技术特征:

1.一种单元测试的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述dbunit注解将测试数据导入到所述数据表中,包括:

3.根据权利要求1所述的方法,其特征在于,基于所述mapperutil工具类获取mapper对象实例,包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.一种单元测试的装置,其特征在于,包括:

7.根据权利要求6所述的装置,其特征在于,所述数据导入模块,还用于:

8.根据权利要求6所述的装置,其特征在于,所述实例获取模块,还用于:

9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至5任一项所述的方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至5任一项所述的方法的步骤。


技术总结
本发明提供了一种单元测试的方法、装置、电子设备及介质,包括:创建项目环境的相关依赖项和工具类;其中,相关依赖项至少包括:DBunit、Spock和Jacoco;工具类至少包括:DbUnit注解以及MapperUtil工具类;基于Spock的注解创建数据表,并基于DbUnit注解将测试数据导入到数据表中;基于MapperUtil工具类获取Mapper对象实例;基于数据表、Mapper对象实例和Spock标签进行单元测试。本发明提高了单元测试的效率和质量。

技术研发人员:陈乐
受保护的技术使用者:同程网络科技股份有限公司
技术研发日:
技术公布日:2024/3/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1