微服务单元测试组件

背景

    微服务的调试,哪怕是简单问题,需要启动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,执行和预期对比

文中测试组件,去掉测试的本人工程依赖,工程会出错,可做参考使用

https://download.csdn.net/download/szlhj/91673468

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/918749.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/918749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零到一的 Python CI/CD 实战指南:用 GitHub Actions 与 Jenkins 打造稳定、可持续交付的工程力

从零到一的 Python CI/CD 实战指南:用 GitHub Actions 与 Jenkins 打造稳定、可持续交付的工程力 当我们把第一行 Python 程序跑通时,成就感像破土的新芽;而当它在每次提交后自动被测试、打包、发布、上线,稳定服务成千上万的用户,那是“工程化”的成熟。本文带你从概念到…

如何在保持人设新鲜感的同时,强化受众记忆点?

保持人设新鲜感与强化受众记忆点,本质是 “动态创新” 与 “核心稳定” 的平衡艺术。既需通过有序变化避免受众审美疲劳,又需让核心特质在重复中加深烙印,关键在于建立 “锚点稳定、外延流动” 的内容体系。一、锚定 “核心记忆单元”&#x…

Ubuntu 22.04 离线环境下 Python 包与 FFmpeg 安装全攻略​

Ubuntu 22.04 离线环境下 Python 包与 FFmpeg 安装全攻略 在没有网络连接的 Ubuntu 22.04 环境中安装软件包常常会遇到各种依赖问题,尤其是 Python 库和 FFmpeg 这类依赖复杂的工具。 本文将详细介绍如何在离线环境中安装指定的 Python 包(包括 OpenCV、…

ESP32 I2S音频总线学习笔记(六):DIY蓝牙音箱教程

往期相关文章: ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础 ESP32 I2S音频总线学习笔记(二):I2S读取INMP441音频数据 ESP32 I2S音频总线学习笔记(三)&#…

springboot博客实战笔记02

一、评论功能: 注意要先登录之后才能进行评论,所有把评论加入到登录拦截器当中 Overridepublic void addInterceptors(InterceptorRegistry registry) {//拦截test接口,后续实际遇到需要拦截的接口时,在配置为真正的拦截接口regis…

ThinkPHP+Mysql 灵活用工小程序-技术深度解析与实践指南

一、模块设计分包商:税地注册公司,用于在当地申请有利的税收政策,是实际报税公司。 代理商:代理商可以邀请客户使用本平台,平台会给予代理商一定的服务费差价作为佣金。 客户:使用本平台进行工资发放的…

开源数据发现平台:Amundsen 第1部分:基础入门与本地环境设置

Amundsen 是一个数据发现和元数据引擎,旨在提高数据分析师、数据科学家和工程师与数据交互时的生产力。目前,它通过索引数据资源(表格、仪表板、数据流等)并基于使用模式(例如,查询频率高的表格会优先于查询…

Linux编程--进程

1、基本概念:进程:是程序动态执行的过程,包括创建、调度、消亡程序:存放在外存中一段数据的集合虚拟地址:进程使用的逻辑地址,有操作系统管理,不直接对应物理内存物理地址:实际内存的…

【开源工具】基于硬件指纹的“一机一码”软件授权系统全实现(附完整源码)

🚨 紧急预警!你的软件正在被白嫖?这套Python软件加密授权方案让破解者当场崩溃 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情源自每一个灵感闪现的夜晚。愿以开源之火,点亮前行之路。 🐋 希望大家多多支持…

机器学习算法篇(八)-------svm支持向量机

目录 ​​1. SVM 的核心原理(必须掌握)​​ ​​2. Python 中的实践重点​​ ​​(1) Scikit-learn 的 SVM 实现​​ ​​(2) 数据预处理​​ ​​(3) 模型评估与调优​​ ​​3. 学习侧重点优先级​​ ​​4. 经典案例实践方向​​ ​​5. 学习…

发票查验接口接收参数说明-PHP语言集成-财务管理

发票验真服务接口可实时联网核验发票真伪,查验一致时返回全票面信息。其支持核验增值税发票管理系统开具发票的真伪,且能进行发票批量查验,当日开具的发票当日即可查验。同时,结合发票识别接口可实现自动识别发票信息核验&#xf…

Uniapp物联网平台登录与温湿度监测系统

下面是一个完整的Uniapp物联网平台实现,包含登录功能和温湿度监测系统。这个解决方案采用现代化UI设计,模拟了物联网平台的核心功能。文章末尾提供源码下载。 系统功能说明 这个Uniapp物联网平台登录与温湿度监测系统包含以下核心功能: 1.…

【企业架构】TOGAF概念之四(终结)

导读:学习TOGAF(The Open Group Architecture Framework,开放组架构框架)相关概念的意义和价值,体现在它为企业架构(Enterprise Architecture, EA)实践提供了标准化方法论、跨领域协同框架、战略…

centos 怎么部署 vscode 网页版

安装编译工具 下载适用于 linux 版本的 rpm 格式文件 下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux 拷贝路径,下载文件 wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/e3550cfac4b63ca4eafca7b601f0d2885817fd1f/code…

sql的关键字 limit 和offset

核心概念LIMIT (限制): 指定查询最多返回多少行记录。OFFSET (偏移): 指定在开始返回记录之前要跳过多少行记录。它定义了结果集的起始点。核心前提: 必须 使用 ORDER BY 子句来确保分页结果的顺序稳定和可预测。示例: 假设 employees 表有 100 条记录&a…

git config的配置全局或局部仓库的参数: local, global, system

git config的范围参数: local, global, system1. --local: 作用于当前仓库2. --global: 作用于当前用户的全局范围的 Git 仓库3. --system: 作用于系统范围内的 Git 仓库4. 注意事项参考链接1. --local: 作用于当前仓库 --local: 这个参数的作用范围是当前仓库。其配置的参数保…

应用系统连达梦数据库报“服务器模式不匹配”的根源与修复方案

近期遇到很多个应用系统连接达梦数据库报“服务器模式不匹配”的问题,省流直接说文章结论通常两种场景 初次连接达梦数据库时报服务器模式不匹配,可能是配置文件中LOGIN_MODE参数配置与数据库状态不一致导致连接失败应用系统正常运行负载大或者偶发报服务…

git:分支

分支命名可以使用斜杠(/)构建分层命名方案不能以减号(-)开头,分层的命名不能以点(.)开头不能使用连接两个点(.)不能包括空格或其他空白字符以及~ ^ : ? * [列出分支名称 git branch 列出本地版本库的分支git branch -r 列出远程跟踪分支git branch -a …

T05_卷积神经网络

全连接网络存的弊端 以MINST数字识别为例,创建一个4层全连接网络层,输入为28x28,中间三个隐藏层的节点数都是 256,输出节点数是10。通过summary()函数打印出模型每一层的参数量,计算总的参数量超过34万个网络参数&…

区块链在可信空间智能合约中的应用

区块链在可信数据空间的智能合约应用,通过去中心化信任机制、自动化执行、可验证计算等特性,正在重塑数据存储、共享、交易和治理的模式。以下是其核心应用方向、关键技术及落地案例的深度解析: 一、核心应用方向 1. 数据确权与授权管理 应用场景 个人数据主权:用户通过智…