【java】redisTemplate mock时报空指针
原方法:
Boolean locked = redisTemplate.opsForValue().setIfAbsent(redisKey, "", 400, TimeUnit.SECONDS);
mock方法
mock方法:
需要每个函数都mock。
@Mock
RedisTemplate redisTemplate;...
ValueOperations<String, String> valueOperations = mock(ValueOperations.class);
when(redisTemplate.opsForValue()).thenReturn(valueOperations);
when(valueOperations.setIfAbsent(any(String.class), any(String.class), any(Long.class), any())).thenReturn(true);
其次setIfAbsent(any(String.class), any(String.class), any(Long.class), any()) 这里
如果写成setIfAbsent(any(), any(), any(), any())就不匹配。
这是因为setIfAbsent方法的参数类型是String,String,Long和Object。在使用参数匹配器时,需要根据实际的参数类型来指定匹配器的类型。
在代码中,使用了any(String.class)和any(Long.class)来指定了具体的参数类型,因此匹配器能够正确地匹配到这些参数。但是在最后一个参数上,使用了any()而没有指定具体的类型,这会导致参数匹配器无法正确匹配。
为了正确使用参数匹配器,请确保在使用any()时指定具体的参数类型。如果最后一个参数是Object类型,您可以使用any()或者anyObject()来匹配。
其他redis mock方法:
RedisTemplate<String, Object> redisTemplate = mock(RedisTemplate.class);
when(mockRedisUtils.getRedisTemplate()).thenReturn(redisTemplate);
ValueOperations<String, Object> valueOperations = mock(ValueOperations.class);
when(redisTemplate.opsForValue()).thenReturn(valueOperations);
when(valueOperations.setIfAbsent(any(String.class), any(String.class), any(Long.class), any())).thenReturn(true);
相关文章:
【java】redisTemplate mock时报空指针
原方法: Boolean locked redisTemplate.opsForValue().setIfAbsent(redisKey, "", 400, TimeUnit.SECONDS);mock方法 mock方法: 需要每个函数都mock。 Mock RedisTemplate redisTemplate;... ValueOperations<String, String> value…...
Hadoop PseudoDistributed Mode 伪分布式
Hadoop PseudoDistributed Mode 伪分布式加粗样式 hadoop101hadoop102hadoop103192.168.171.101192.168.171.102192.168.171.103namenodesecondary namenoderecource managerdatanodedatanodedatanodenodemanagernodemanagernodemanagerjob historyjob logjob logjob log 1. …...
个人职业规划
职业规划 软件体系结构 内容 组件 关系 视图 技术 抽象 封装 信息隐藏 模块化 事务分离 耦合和内聚 充分性、完整性和原始性 策略和实现的分离 接口和实现的分离 单一引用点 分而治之 结构 层 管道和过滤器 黑板 系统 分布式系统 代理者 交互式系统 …...
Linux | 如何保持 SSH 会话处于活动状态
在远程服务器管理和安全数据传输中,SSH(Secure Shell)是不可或缺的工具。然而,它的便利性和安全性有时会因常见的问题而受到损害:冻结 SSH 会话。 此外,session 的突然中断可能会导致工作丢失、项目延迟和无…...
树结构及其算法-二叉树节点的插入
目录 树结构及其算法-二叉树节点的插入 C代码 树结构及其算法-二叉树节点的插入 二叉树节点插入的情况和查找相似,重点是插入后仍要保持二叉查找树的特性。如果插入的节点已经在二叉树中,就没有插入的必要了,如果插入的值不在二叉树中&…...
JVM 分代垃圾回收过程
堆空间划分了代: 年轻代(Young Generation)分为 eden 和 Survivor 两个区,Survivor 又分为2个均等的区,S0 和 S1。 首先,新对象都分配到年轻代的 eden 空间,Survivor 刚开始是空的。 当 eden …...
【C++】 常对象与常函数
常函数: 成员函数后加const后我们称为这个函数为常函数常函数内不可以修改成员属性成员属性声明时加关键字mutable后,在常函数中依然可以修改 常对象: 声明对象前加const称该对象为常对象常对象只能调用常函数 一、this指针本质 this指针…...
Elasticsearch 集群分片出现 unassigned 其中一种原因详细还原
🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…...
Java调用HTTPS接口,绕过SSL认证
1:说明 网络编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密的方式在计算机网络上进行安全通信的协议。网络传输协议,跟http相比更安全,因为他加上了SSL/TLS协议来加密通信内容。 Java调…...
前端小技巧: TS实现数组转树,树转数组
将数组转为树 interface IArrayItem {id: number,name: string,parentId: number }interface ITreeNode {id: numbername: stringchildren?: ITreeNode[] }const arr [{id: 1, name: 部门A, parentId: 0},{id: 2, name: 部门B, parentId: 1},{id: 3, name: 部门C, parentId:…...
谷歌动态搜索广告被滥用引发恶意软件泛滥
研究人员发现了一种新方法,可以利用易受攻击的网站向搜索引擎用户发送恶意的、有针对性的广告,这种方法能够传播大量恶意软件,使受害者完全不知所措。 关键是“动态搜索广告”,谷歌利用网站登陆页面的内容将目标广告与搜索配对的…...
C语言实现 1.在一个二维数组中形成 n 阶矩阵,2.去掉靠边元素,生成新的 n-2 阶矩阵;3.求矩阵主对角线下元素之和:4.以方阵形式输出数组。
矩阵形式: 1 1 1 1 1 2 1 1 1 1 3 2 1 1 1 4 3 2 1 1 5 4 3 2 1 完整代码: /*编写以下函数 1.在一个二维数组中形成如以下形式的 n 阶矩阵: 1 1 1 1 1 2 1 1 1 1 3 2 1 1 1 4 3 2 1 1 5 4 3 2 1 2.去掉…...
我在Vscode学OpenCV 处理图像
既然我们是面向Python的OpenCV(OpenCV for Python)那我们就必须要熟悉Numpy这个库,尤其是其中的数组的库,Python是没有数组的,唯有借助他库才有所实现想要的目的。 # 老三样库--事先导入 import numpy as np import c…...
【python】路径管理+路径拼接问题
路径管理 问题相对路径问题绝对路径问题 解决os库pathlib库最终解决 问题 环境:python3.7.16 win10 相对路径问题 因为python的执行特殊性,使用相对路径时,在不同路径下用python指令会有不同的索引效果(python的项目根目录根据执…...
C现代方法(第16章)笔记——结构、联合和枚举
文章目录 第16章 结构、联合和枚举16.1 结构变量16.1.1 结构变量的声明16.1.2 结构变量的初始化16.1.3 指示器(C99)16.1.4 对结构的操作 16.2 结构类型16.2.1 结构标记的声明16.2.2 结构类型的定义16.2.3 结构作为参数和返回值16.2.4 复合字面量(C99)16.2.5 匿名结构(C1X) 16.3…...
Python项目——识别指定物品
目录 1、百度EasyDL平台数据配置 1.1、训练图像上传 1.2、训练图像进行标注 1.3、训练模型 1.4、检验识别 1.5、申请发布 1.6、控制台权限配置 2、Python调用物体识别API 本项目是基于百度EasyDL平台制作的识别转盘内瓶子,且识别瓶子位置的一个项目。通过在…...
Spring-创建非懒加载的单例Bean源码
补充:关于扫描的逻辑 /*** Scan the class path for candidate components.* param basePackage the package to check for annotated classes* return a corresponding Set of autodetected bean definitions*/ public Set<BeanDefinition> findCandidateCo…...
Techlink TL24G06 网络变压器 10G 基座单端口变压器
功能特征: 1、符合IEEE 802.3标准。 2、符合RoHS。 3、工作温度范围:0C至70C。 4、储存温度范围:-20C至125C。...
Python操作PDF:PDF文件合并与PDF页面重排
处理大量的 PDF 文档是非常麻烦的事情,频繁地打开关闭文件会严重影响工作效率。对于一大堆内容相关的 PDF 文件,我们在处理时可以将这些 PDF 文件合并起来,作为单一文件处理,从而提高处理效率。同时,我们也可以选取不同…...
删除链表的倒数第n个节点(C++解法)
题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&#…...
DeepSeek企业版限流策略配置手册(内部泄露版):含6大行业客户真实配置快照、TPS压测曲线图及SLA违约赔偿条款映射表
更多请点击: https://intelliparadigm.com 第一章:DeepSeek企业版限流策略配置概览 DeepSeek企业版提供细粒度、可编程的API限流能力,支持基于用户身份、租户ID、模型类型及请求路径等多维度组合策略。限流配置通过统一的策略中心࿰…...
3大核心技术深度解析:泉盛UV-K5/K6对讲机LOSEHU固件完全配置指南
3大核心技术深度解析:泉盛UV-K5/K6对讲机LOSEHU固件完全配置指南 【免费下载链接】uv-k5-firmware-custom 全功能泉盛UV-K5/K6固件 Quansheng UV-K5/K6 Firmware 项目地址: https://gitcode.com/gh_mirrors/uvk5f/uv-k5-firmware-custom 泉盛UV-K5/K6对讲机L…...
DeepSeek企业版访问控制配置白皮书(内部泄露版·含审计日志埋点规范与SOC2合规映射表)
更多请点击: https://codechina.net 第一章:DeepSeek企业版访问控制配置概述 DeepSeek企业版提供细粒度、可审计、可扩展的访问控制能力,支持基于角色(RBAC)、属性(ABAC)及策略即代码ÿ…...
OpenSSH ssh-agent CVE-2023-38408 漏洞修复实战指南
1. 这个漏洞不是“修个配置就能好”的那种——它藏在ssh-agent的共享库加载机制里OpenSSH-ssh-agent CVE-2023-38408,光看编号你可能觉得是又一个常规权限提升补丁。但实际动手前我翻了三天源码才意识到:这不是改几行配置、重启服务就能闭环的问题。它直…...
Godot 4.0桌面应用开发实战:跨平台GUI工程化落地指南
1. 这不是游戏引擎的“副业”,而是桌面开发的新路径很多人第一次看到“用Godot做桌面应用”时,下意识会皱眉:一个标榜“2D/3D游戏开发”的引擎,去碰文件管理器、RSS阅读器、本地笔记工具这类传统桌面软件?是不是大炮打…...
深入浅出arm7架构下大模型API调用,Taotoken多模型聚合平台接入指南
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 深入浅出arm7架构下大模型API调用,Taotoken多模型聚合平台接入指南 对于在arm7架构设备上进行开发的工程师而言&#x…...
工作总“救火”还费力不讨好?《易经》这一卦告诉你:别瞎忙
你有没有遇到过这样的同事或领导?哪里出问题,他就冲向哪里,整天忙得脚不沾地,可最后不但没解决问题,反而把局面弄得更糟,自己也落得个“吃力不讨好”。或者,你自己就是那个“救火队员”。项目出…...
学术写作新纪元!2026一站式AI论文写作工具推荐指南
2026 年 AI 论文写作工具已进入全流程闭环 学术合规时代,千笔 AI(综合评分 99 分)中文学术场景标杆;Grammarly Academic与Elicit为英文论文写作首选;按需求匹配度 - 数据可信度 - 成本承受力三维模型选型,…...
Diablo Edit2:暗黑破坏神II全版本角色存档编辑器终极指南
Diablo Edit2:暗黑破坏神II全版本角色存档编辑器终极指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否厌倦了在暗黑破坏神II中花费数百小时刷装备?是否想要尝试各…...
影刀RPA跨境店群运营架构:Python高并发协同与Chromium多账号环境隔离实战
影刀RPA跨境店群运营架构:Python高并发协同与Chromium多账号环境隔离实战 架构师观察:流水线下的底层较量 近日,科技圈的头条毫无意外地被某头部视频生成大模型(被誉为 Seedance 2.0 最强对手)偷跑的内测演示视频彻底…...
