当前位置: 首页 > news >正文

微服务单元测试组件

背景

    微服务的调试,哪怕是简单问题,需要启动9个服务,ui/nginx 网关 应用 auth 基础数据服务 redis nacos 平台服务 ,效率差得不行,准备开发一个支持微服务环境的单元测试组件,

组件解决3个问题:

1 feign依赖,使用mock

2 权限和用户信息

3 切面,测试目标可带注解,方法前后执行切面

下面以代码解释测试组件的实现

测试容器

测试容器负责必要组件的构建和初始,主要是mock,容器标注@Compoenent,受spring管理,可以定义注解方法,支持测试目标的切面

上图,测试容器定义平台测试需要的注解,testee定义为Function,即测试代码是Function实现

测试示例

本节解释测试编写

上图是测试类的定义,

@EnableAspectJAutoProxy  示例需要切面,可以根据需要引入

GRPPlatformTestContainer 上一节介绍的测试容器,后面介绍使用

RemoteUpmsService 基础服务,需要mock的feign

CommonBizImpl 测试目标服务和组件

测试初始和释放

上图是测试的初始和释放,主要是mocking feign,即上面RemoteUpmsService方法返回的预设,测试中用到用户信息的预设

下图是测试中基础服务用到的两个方法的预设

上面方法返回null即可,比较简单,实际可能需要知道需要一些返回

上图是测试中的当前用户,使用spring security,在上下文设置预定的用户即可

上图是测试方法,分3部分,参数准备,测试,实现为function,执行和预期对比

http://www.xdnf.cn/news/1291645.html

相关文章:

  • 在CentOS 7上配置Android USB网络共享方式的方法
  • Linux的进程信号
  • ASP.NET 上传文件安全检测方案
  • 设计秒杀系统从哪些方面考虑
  • 微软正式将GPT-5接入Microsoft Copilot Studio(国际版)
  • 【物联网】基于树莓派的物联网开发【26】——树莓派开启串口并配置串口助手Minicom
  • jvm学习笔记之jvm的生命周期和发展历程
  • Ansible 实操笔记:Playbook 与变量管理
  • dubbo应用之门面设计模式
  • 《Python学习之基础语法2:掌握程序流程控制的艺术》
  • 101、【OS】【Nuttx】【周边】文档构建渲染:reStructuredText 格式
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day3
  • C++多态:理解面向对象的“一个接口,多种实现”
  • 《AVL树的原理与C++实现:详解平衡二叉搜索树的高效构建与操作》
  • 旧版MinIO的安装(windows)、Spring Boot 后端集成 MinIO 实现文件存储(超详细,带图文)
  • 使用 6 种方法将文件从 Android 无缝传输到iPad
  • [Linux]学习笔记系列 -- [arm][process]
  • WPF 开发的瑞士军刀:Prism 框架从入门到精通指南
  • C++写文件,open函数的参数in、out、ate、app、trunc等标志分别是什么作用?
  • C++ 面向对象四大特性:面试深度解析
  • 河南萌新联赛2025第五场 - 信息工程大学
  • IDEA创建一个VUE项目
  • C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解
  • 数据分析项目----幸福感挖掘和预测
  • Python实战教程:PDF文档自动化编辑与图表绘制全攻略
  • PyTorch生成式人工智能——基于Transformer实现文本转语音
  • SeaTunnel MCP Server 入选《中国信通院开源商业产品及企业典型案例集(2025)》
  • 袖珍手持气象仪的用途
  • linux_网络层-ip协议
  • 开源日志log4cplus—调用MultiByteToWideChar提示未定义,CP_UTF8未定义定原因有哪些,如何改进?