05 2021 档案

摘要:SpringBoot启动报包冲突have different Class objects for the type 现象: and the class loader (instance of sun/misc/Launcher$AppClassLoader) for interface Device 阅读全文
posted @ 2021-05-28 11:14 迷走神经 阅读(1478) 评论(0) 推荐(0) 编辑
摘要:Mockito项目实战demo(怎么用mock代替本类方法调用,即this调用) 情形一 被测试类如下: @Service @Transactional @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class Co 阅读全文
posted @ 2021-05-24 23:09 迷走神经 阅读(339) 评论(0) 推荐(0) 编辑
摘要:Mockito 临时 mock 对象 如果需要临时将一个对象的内部对象替换为 mock 对象,在无法通过set和get处理内部对象的情况下,可以利用反射搞定。 Java JOOR 反射库 是一个很好用的反射库。本文用它进行临时替换。 用一个小项目作为示例: 项目结构: . ├── build.gra 阅读全文
posted @ 2021-05-24 23:02 迷走神经 阅读(143) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 PowerMock 让 Mockito 支持静态方法 PowerMock 是一个增强库,用来增加 Mockito 、EasyMock 等测试库的功能。 Mockito 默认是不支持静态方法 比如我们在 ExampleService 类中定义静态方法 add: public cl 阅读全文
posted @ 2021-05-24 22:58 迷走神经 阅读(314) 评论(0) 推荐(0) 编辑
摘要:Mockito 测试隔离 根据 JUnit 单测隔离 ,当 Mockito 和 JUnit 配合使用时,也会将非static变量或者非单例隔离开。 比如使用 @Mock 修饰的 mock 对象在不同的单测中会被隔离开。 示例: import org.junit.Test; import org.ju 阅读全文
posted @ 2021-05-24 22:54 迷走神经 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 mockingDetails 判断对象是否为 mock对象、spy 对象 Mockito 的 mockingDetails 方法会返回 MockingDetails 对象,它的 isMock 方法可以判断对象是否为 mock 对象,isSpy 方法可以判断对象是否为 spy 对 阅读全文
posted @ 2021-05-24 22:52 迷走神经 阅读(196) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 verify 校验是否发生过某些操作 使用 verify 可以校验 mock 对象是否发生过某些操作 示例 import org.junit.Test; import static org.mockito.Mockito.*; public class MockitoDemo 阅读全文
posted @ 2021-05-24 22:51 迷走神经 阅读(125) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 thenCallRealMethod 调用 spy 对象的真实方法 thenCallRealMethod 可以用来重置 spy 对象的特定方法特定参数调用。 示例: import org.junit.Assert; import org.junit.Test; import s 阅读全文
posted @ 2021-05-24 22:49 迷走神经 阅读(592) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 reset 重置对象 使用 reset 方法,可以重置之前自定义的返回值和异常。 reset mock 对象示例 import org.junit.Assert; import org.junit.Test; import static org.mockito.Mockito. 阅读全文
posted @ 2021-05-24 22:47 迷走神经 阅读(689) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 doNothing 让 void 函数什么都不做 doNothing 用于让 void 函数什么都不做。因为 mock 对象中,void 函数就是什么都不做,所以该方法更适合 spy 对象。 示例: import org.junit.Test; import static or 阅读全文
posted @ 2021-05-24 22:45 迷走神经 阅读(632) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 doAnswer 自定义方法处理逻辑 doAnswer 的作用和 thenAnswer 相同,但使用方式不同: import org.junit.Assert; import org.junit.Test; import org.mockito.MockitoAnnotatio 阅读全文
posted @ 2021-05-24 22:43 迷走神经 阅读(254) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 doThrow 让方法抛出异常 如果一个对象的方法的返回值是 void,那么不能用 when .. thenThrow 让该方法抛出异常 如果没有返回值, 下面这种写法是错误的: import org.junit.Test; import org.mockito.Mock; i 阅读全文
posted @ 2021-05-24 21:47 迷走神经 阅读(513) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 doReturn 设置方法的返回值 doReturn 的作用和 thenReturn 相同,但使用方式不同: import org.junit.Assert; import org.junit.Test; import org.mockito.MockitoAnnotation 阅读全文
posted @ 2021-05-24 21:42 迷走神经 阅读(187) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用then、thenAnswer 自定义方法处理逻辑 then 和 thenAnswer 的效果是一样的。它们的参数是实现 Answer 接口的对象,在该对象中可以获取调用参数,自定义返回值。 示例: import org.junit.Assert; import org.juni 阅读全文
posted @ 2021-05-24 21:17 迷走神经 阅读(1169) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 thenThrow 让方法抛出异常 thenThrow 用来让函数调用抛出异常。 import org.junit.Assert; import org.junit.Test; import static org.mockito.Mockito.*; import java.u 阅读全文
posted @ 2021-05-24 21:13 迷走神经 阅读(723) 评论(0) 推荐(0) 编辑
摘要:Mockito 使用 thenReturn 设置方法的返回值 thenReturn 用来指定特定函数和参数调用的返回值。 比如: import org.junit.Assert; import org.junit.Test; import static org.mockito.Mockito.*; 阅读全文
posted @ 2021-05-24 21:09 迷走神经 阅读(290) 评论(0) 推荐(0) 编辑
摘要:Mockito @InjectMocks 注解注入 mock 对象 mockito 会将 @Mock、@Spy 修饰的对象自动注入到 @InjectMocks 修饰的对象中。 注入方式有多种,mockito 会按照下面的顺序尝试注入: 构造函数注入 设值函数注入(set函数) 属性注入 示例: 准备 阅读全文
posted @ 2021-05-24 18:16 迷走神经 阅读(440) 评论(0) 推荐(0) 编辑
摘要:Mockito spy 和 @Spy 注解 spy 和 mock不同,不同点是: spy 的参数是对象实例,mock 的参数是 class。 被 spy 的对象,调用其方法时默认会走真实方法。mock 对象不会。 下面是一个对比: import org.junit.Assert; import or 阅读全文
posted @ 2021-05-24 16:11 迷走神经 阅读(488) 评论(0) 推荐(0) 编辑
摘要:Mockito 参数匹配顺序 如果参数匹配即声明了精确匹配,也声明了模糊匹配;又或者同一个值的精确匹配出现了两次,使用时会匹配哪一个? 会匹配符合匹配条件的最新声明的匹配。 示例: import org.junit.Assert; import org.junit.Test; import org. 阅读全文
posted @ 2021-05-24 16:05 迷走神经 阅读(135) 评论(0) 推荐(0) 编辑
摘要:Mockito 参数匹配 精确匹配 我们之前介绍过这样的例子: import org.junit.Assert; import org.junit.Test; import java.util.List; import static org.mockito.Mockito.*; public cla 阅读全文
posted @ 2021-05-24 16:00 迷走神经 阅读(377) 评论(0) 推荐(0) 编辑
摘要:Mockito mock 泛型类、泛型接口 示例: import org.junit.Assert; import org.junit.Test; import java.util.ArrayList; import static org.mockito.Mockito.*; public clas 阅读全文
posted @ 2021-05-24 14:59 迷走神经 阅读(405) 评论(0) 推荐(0) 编辑
摘要:Mockito @Mock 注解 @Mock 注解可以理解为对 mock 方法的一个替代。 使用该注解时,要使用MockitoAnnotations.initMocks 方法,让注解生效。 示例1: import org.junit.Assert; import org.junit.Test; im 阅读全文
posted @ 2021-05-24 14:56 迷走神经 阅读(355) 评论(0) 推荐(0) 编辑
摘要:Mocktio 使用 mock 方法模拟类和接口 org.mockito.Mockito 的 mock 方法可以模拟类和接口。 mock 类: import org.junit.Assert; import org.junit.Test; import java.util.Random; impor 阅读全文
posted @ 2021-05-24 14:53 迷走神经 阅读(153) 评论(0) 推荐(0) 编辑
摘要:Mockito 引入依赖包 如果是用 gradle 构建 gradle 项目,加入以下依赖: dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'org.mocki 阅读全文
posted @ 2021-05-24 14:48 迷走神经 阅读(185) 评论(0) 推荐(0) 编辑
摘要:Mocktio 入门 Mockito 是一个模拟测试框架。主要功能是模拟类/对象的行为。 Mockito 一般用于控制调用外部的返回值,让我们只关心和测试自己的业务逻辑。 我们看一个示例: package demo; import java.util.Random; public class Htt 阅读全文
posted @ 2021-05-24 14:45 迷走神经 阅读(343) 评论(0) 推荐(0) 编辑
摘要:如何在springboot优雅的使用枚举 从数据库中读取枚举值 使用Mybatis-Plus3读取 借助MyBatis-Plus可以很容易的实现这一点。 首先需要在配置文件中加入type-enums-package指定枚举的扫描包,MyBatis-Plus将为包内(包含子包)所有枚举进行适配,可以使 阅读全文
posted @ 2021-05-19 23:36 迷走神经 阅读(485) 评论(0) 推荐(0) 编辑
摘要:在Spring Boot中优雅的实现定时任务 在日常的项目开发中,往往会涉及到一些需要做到定时执行的代码,例如自动将超过24小时的未付款的单改为取消状态,自动将超过14天客户未签收的订单改为已签收状态等等,那么为了在Spring Boot中实现此类需求,我们要怎么做呢? Spring Boot早已考 阅读全文
posted @ 2021-05-19 18:05 迷走神经 阅读(55) 评论(0) 推荐(0) 编辑
摘要:实现阿里云OSS进行多文件压缩下载,压缩包中不同的文件可以自定义放在不同的文件夹下,每个文件名和压缩包名也可以自定义 工具类如下: public class OssClientUtils { // 都是配置信息oss public static final String END_POINT = "o 阅读全文
posted @ 2021-05-19 17:30 迷走神经 阅读(165) 评论(0) 推荐(0) 编辑
摘要:如何在数据库事务提交成功后进行异步操作 问题 业务场景 业务需求上经常会有一些边缘操作,比如主流程操作A:用户报名课程操作入库,边缘操作B:发送邮件或短信通知。 业务要求 操作A操作数据库失败后,事务回滚,那么操作B不能执行。 操作A执行成功后,操作B也必须执行成功 如何实现 普通的执行A,之后执行 阅读全文
posted @ 2021-05-19 17:09 迷走神经 阅读(150) 评论(0) 推荐(0) 编辑
摘要:使用了shiro,导致事务失效的情形 场景 shiroconfig中配置如下: 1 /** 2 * 安全管理器 3 */ 4 @Bean 5 public DefaultWebSecurityManager securityManager(ApplicationContext context, Co 阅读全文
posted @ 2021-05-07 13:52 迷走神经 阅读(52) 评论(0) 推荐(0) 编辑