SpringBoot动态创建自定义MySQL多数据源
SpringBoot动态创建自定义MySQL多数据源
|
前言接上一篇动态创建自定义Bean,这篇我们来创建MysQL多数据源。自定义Bean实现我用的是BeanDefinitionRegistryPostProcessor。连接池用的是alibaba的DruidDataSource。支持全局的数据源统一启动。Bean定义基本上和上一篇的定义差不多就不再赘
SpringBoot动态创建自定义Bean
SpringBoot动态创建自定义Bean
|
前言有时候我们需要在应用启动的时候根据某些规则动态创建一个Bean对象,我们应该要考虑一些事情。对象是否在创建后才能使用,这样避免有些对象在定义的时候就由于Bean创建的顺序问题导致Bean都没有初始化给容器就被使用了,这样启动的时候出现一些null异常。对象的属性从第三方配置中心获取,这些配置是否
Mock和Spy的区别《第十章》
Mock和Spy的区别《第十章》
|
0 评论
前言打桩某个类或接口一般用两个注解:@Mock和@Spy,一般用Mock是最多的。下面我们看看两个示例。Mock@Mock是不执行具体对象内的方法逻辑,该注解用bytebuddy生成的是一个代理子类非真实方法,返回的都是NULL或Empty。基本配合when…thenReturn返回需要的对象值即可
Mockito 断言和校验器《第九章》
Mockito 断言和校验器《第九章》
|
0 评论
前言我们有很多篇幅介绍了如果使用mock挡板等工具做无外部依赖单元测试,本章聊一下单元测试中的断言和校验器。断言Assertj推荐用Assertj 断言,反观Assert不是那么的直观好用。Assertj支持字符串、数字、日期、List、Map、Class等类型,此外还提供了好用的 fail 方法。
Mockito WEB接口测试《第八章》
Mockito WEB接口测试《第八章》
|
0 评论
前言前面基本都是接口后端类的测试,这章聊一下web端的http服务如何测试。我们使用junit测试web的时候不得不起一个完整的服务后调用才能够进入controller代码里面,就如下代码:@Controller@RequestMappingpublic class WarehouseControl
Mockito 异常场景测试技巧《第七章》
Mockito 异常场景测试技巧《第七章》
|
0 评论
异常场景测试技巧我们的方法有时候没有异常返回,但是内部的某些方法我们try catch了需要测试覆盖到,这类的场景我们也是非常常见的且着重要注意到的。模拟执行某方法异常测试public class TestServiceImpl{ @Resource private MyService mySe
Mockito 正常场景测试技巧《第六章》
Mockito 正常场景测试技巧《第六章》
|
0 评论
正常场景测试技巧在这半个月我写的单元测试用例代码中,遇到了很多问题,比如私有变量、方法内部new对象、静态方法mock等,有些代码我们确实难以模拟的,我把我的解决方式跟大家分享一下。各种service接口模拟// Spring里面的接口、Dubbo接口等注入public class TestServ
Mockito EventBus RocketMQ 生产者测试《第五章》
Mockito EventBus RocketMQ 生产者测试《第五章》
|
0 评论
前言上一章说到了RocketMQ在EvnetBus包装下的测试工具。本章主要讲MSF EventBus生产者操作。EventBus 生产者模拟测试请看下面实例:import com.alibaba.fastjson.JSONObject;import com.cdg.msf.event.bus.ba
Mockito EventBus RocketMQ 消费者测试《第四章》
Mockito EventBus RocketMQ 消费者测试《第四章》
|
0 评论
前言在消息中间件中我们要模拟的是收发信息的动作,MQ这类的是依赖第三方消息中间件的,除去启动消息中间件去消费消息这一动作外,其实我们最关心的是我们接受到消息后怎么处理的问题,那么收消息是MQ中多线程去拉取数据的,也是官方jar提供工具类帮我们做的,所以我们需要入手的就是模拟有人给我们发消息,这个接收
Mockito MongoDB测试《第三章》
Mockito MongoDB测试《第三章》
|
0 评论
1:前言上一章说到了Redis测试工具,我们需要模拟的是Redis连接挡板。本章主要讲如何在单元测试中模拟Mongo服务器操作。还是一如既往的不使用真正的服务器,直接用mock挡板。2:Mongo模拟测试请看下面实例:import com.google.common.collect.Lists;im