[发明专利]基于SpringBoot的集成化单元测试方法及系统在审
申请号: | 202111647583.3 | 申请日: | 2021-12-29 |
公开(公告)号: | CN114416536A | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 陈杰 | 申请(专利权)人: | 江苏康众汽配有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京申云知识产权代理事务所(普通合伙) 32274 | 代理人: | 田沛沛;邱兴天 |
地址: | 210019 江苏省南京市建邺区*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 springboot 集成化 单元测试 方法 系统 | ||
本发明公开一种基于SpringBoot的集成化单元测试方法及系统,通过定制开源组件的自动加载,生成可配置化的模拟组件实例;同时提供组件模拟模块化,通过开关的方式,实现各个开源组件的独立模拟开关;然后基于定制化加载生成的模拟组件,利用SPI机制和文件配置,实现模拟数据的文件配置化。本发明通过定制化开源组件加载,数据模拟文件配置化,解决了生产应用的外部接口和环境依赖问题,提高了单元测试数据模拟效率。通过规范化单元测试编写结构,使得单元测试更加工程结构化,更加清晰易于管理,利于推广使用。
技术领域
本发明属于互联网技术领域,具体涉及一种基于SpringBoot的集成化单元测试方法及系统。
背景技术
单元测试在各个领域都有其重要的意义。尤其是在微服务架构的背景下,业务代码被分散各个微服务中。多个终端系统越来越多的复用微服务。这对微服务系统的正确性和稳定性提了更高的要求。现有的单元测试存在以下问题:
(1)依赖外部接口或者环境。在微服务的场景下,生产工程依赖各种各样的外部因素。如外部微服务,缓存,数据库等等。
(2)模拟数据繁琐,工作量大。目前已有的开源模拟组件无法完美适配生产工程,对于生产有一定侵入性;模拟数据方式需要编写大量模拟代码,效率较低。
(3)无工程级别最佳实践。目前没有对于单元测试的最佳实践,导致在开展单元测试工作时,没有统一共识,单元测试结构混乱。
发明内容
本发明解决的技术问题:提供一种易于管理、提高单元测试数据模拟效率的基于SpringBoot的集成化单元测试方法及系统。
技术方案:为了解决上述技术问题,本发明采用的技术方案如下:
一种基于SpringBoot的集成化单元测试方法,通过定制开源组件的自动加载,生成可配置化的模拟组件实例;同时提供组件模拟模块化,通过开关的方式,实现各个开源组件的独立模拟开关;然后基于定制化加载生成的模拟组件,利用SPI机制和文件配置,实现模拟数据的文件配置化;并将总体单元测试分为本地环境与集成环境,其中本地环境用于运行模拟数据,同时本地单元测试的数据用例按照用例场景进行分类管理。
进一步地,通过DUBBO自动加载和MYBATIS自动加载,实现无侵入式地生成mock代理实例。
进一步地,利用SPI和JSON文件的方式集成mockito框架,实现简化配置模拟数据过程。
进一步地,结合Spring的@Configuration注解,通过自定义加载器开关的方式,实现便捷的模拟开关配置。
进一步地,单元测试用例分为集成用例和本地用例两大类,集成用例用于开发本地联调,本地用例用于执行模拟数据,校验本地代码正确性和检查覆盖率。
进一步地,模拟数据与测试用例分开管理,各用例的模拟数据按照单元测试类名和单元测试方法名的路径存放管理。
一种基于SpringBoot的集成化单元测试系统,包括单元集成测试框架,单元集成测试框架内设置单元测试上下文模块、DUBBO模拟模块、MYBATIS模拟模块、以及其余模拟模块,采用该系统测试时,单元测试用例和模拟数据用例输入至该单元集成测试框架内进行测试,然后输出验证结果。
进一步地,所述单元测试上下文模块,主要包含Spring上下文和模拟案例上下文,在单元测试用例执行时,实现自动加载Spring上下文,在执行单元测试方法时,实现自动装入执行案例信息。
进一步地,所述DUBBO模拟模块,实现重写原生Dubbo组件的自动装载功能,又实现Dubbo模拟代理生成功能。
有益效果:与现有技术相比,本发明具有以下优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏康众汽配有限公司,未经江苏康众汽配有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111647583.3/2.html,转载请声明来源钻瓜专利网。