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

junit mockito service

service类单元测试可以有两种方式

1、使用@Autowired启用上下文的Bean走业务逻辑,适用于debug调试

2、使用@InjectMocks不启用上下文依懒的Bean采用打桩的形式

打桩注意:service通常业务逻辑复杂,Bean的依懒层次可能很深,初用者常犯的问题是想一个测试方法全部测到,虽然有些可以给字段属性赋值的方法来深层次打桩,但难免会有各种各样的困难,初用者在依懒层次很深时可以把不好打桩依懒单独写单元测试

继承的基类MockBaseTest请参考本人文章[junit mockito Base基类]

@RunWith(PowerMockRunner.class)
@PrepareForTest({Date.class})
public class AccountServiceTest extends MockBaseTest {@InjectMocksprivate AccountService accountService;HttpServletRequest request = new MockHttpServletRequest();@Beforepublic void init() {MockitoAnnotations.initMocks(this);}@Testpublic void testAccount_check() throws Exception {((MockHttpServletRequest) request).setParameter("version","0.1.0");Date currDate = DateUtils.parse("2024-01-24 08:00:00",DateUtils.DATE_FORMATE_PATTERN);PowerMockito.whenNew(Date.class).withAnyArguments().thenReturn(currDate);AccountVO vo = accountService.queryAccount(1L, VersionUtils.getCurrVersion(request));Assert.assertEquals("0.1.0", vo.getVersion());}}

相关文章:

  • 【Linux知识点汇总】07 Linux系统防火墙相关命令,关闭和开启防火墙、开放端口号
  • leetcode-三数之和
  • 第一章 应急响应- Linux入侵排查
  • windows 11 PC查询连接过的wlan密码
  • 高通Android 12 设置Global属性为null问题
  • 数据库——单表查询
  • 机械臂泡水维修|机器人雨后进水维修措施
  • [AWS]CodeCommit的创建与使用
  • sqlalchemy事件监听
  • 路由上传一个ui_control参数(uint32类型)控制页面UI显隐
  • firefly rk3288 ubuntu23.10 网卡名为end0 改为eth0
  • 【webpack开发环境下的配置】
  • 原码、补码、反码、移码是什么?
  • 如何理解 Composition API 和 Options API
  • Linux C++ realpath函数crash的解决方法
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • EventListener原理
  • JavaScript设计模式之工厂模式
  • js操作时间(持续更新)
  • Logstash 参考指南(目录)
  • maya建模与骨骼动画快速实现人工鱼
  • nginx 负载服务器优化
  • PHP的类修饰符与访问修饰符
  • select2 取值 遍历 设置默认值
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 阿里云前端周刊 - 第 26 期
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 简单实现一个textarea自适应高度
  • 聊聊hikari连接池的leakDetectionThreshold
  • 如何使用 JavaScript 解析 URL
  • 少走弯路,给Java 1~5 年程序员的建议
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 一道闭包题引发的思考
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 7行Python代码的人脸识别
  • linux 淘宝开源监控工具tsar
  • 我们雇佣了一只大猴子...
  • #define
  • $NOIp2018$劝退记
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (五)activiti-modeler 编辑器初步优化
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)UDP基本编程步骤
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网