- 博客(8)
- 收藏
- 关注
原创 学习PowerMock(3) 注入bean
现在需要测试MyController这个类的单元测试逻辑,把serviceA和serviceB的逻辑mock掉,可以如下写,注意@RunWith不能省略,它的作用是自动把serviceA和serviceB注入到MyController里面去。举例来说,如果有一个叫做MyControler的类,里面有两个成员ServiceA, ServiceB。附上ServiceA的源码。附上ServiceB的源码。
2023-07-16 17:01:09
433
转载 Kafka集成Spring初探
原文转载自首先需要搭建broker集群(本次实验搭建3台,伪集群单机部署3台),然后在Spring容器中启动生产者、消费者,与borker集群交互。
2023-07-16 15:20:44
1368
转载 学习Lock的阻塞式调用
此时线程t2也被创建,它1同样想获取synchronized锁,但是由于锁在t1手中,只能等待t1结束运行再获得锁并打印出"Thread t2 get the synchronized lock"。在"Java Concurrency in Practice"一书中,作者提到,“内置锁synchronized无法中断一个正在等待获取锁的线程,并无法实现非阻塞结构的加锁规则”。为了使得一个线程在等待锁的时候,能够响应中断,Lock接口的lockInterruptibly()方法提供了可响应中断的行为。
2023-07-16 14:59:20
77
原创 学习PowerMock(2) 利用PowerMock抑制父类方法
有时候,想单元测试子类的方法,但是待测试的方法里,往往会调用父类的方法,而我们只关注子类方法的测试,因此需要跳过/无效化 父类方法的调用。本次学习笔记对这样的情形做一个举例。
2023-07-09 18:33:41
1167
转载 学习Spring框架下的分布式事务
假设一个应用内存在多个需要协同工作的资源Resource(比如多个数据库DB,消息队列MQ等),他们需要协同修改并保证“一起成功,或者一起失败”,就是分布式事务的典型应用场景。值得注意的是,Spring的Transaction会和调用栈的当前线程紧紧绑定在一起,也就是说一个事务是从属于当前线程的,在调用栈上抛出了异常就会回滚,这样的回滚操作逻辑。在多个资源的情况下,需要一个协调者,这里称为事务管理器(Transaction Manager),来协调例子里的资源A和资源B的协同沟通。
2023-07-09 17:16:53
94
转载 学习Atomikos整合多个数据源实现JTA分布式事务管理
Atomikos对分布式事务的实现,从本demo工程来看,可以在类com.atomikos.icatch.imp.CompositeTransactionImp处设一个断点(下图所示位置),运行debug模式,看到在每次dataSoure执行sql语句的prepareStatement阶段,会注册一个Synchronization。这里不详述,感兴趣的朋友可以看源码。单个资源参与到分布式事务中时,会注册资源到这个分布式事务的上下文中,那么各个资源都注册后,事务管理器就会直到如何去通知他们一起提交或者回滚。
2023-07-09 17:13:11
230
原创 学习PowerMock(1) 利用PowerMock模拟静态方法
需注意,需要使用@PrepareForTest,括号里写要Mock的静态方法的类,以及@RunWith(PowerMockRunner.class)1.举例,有一个含有静态方法的类SimpleConfig,它分别含有两个静态方法getGreeting()和getTarget()下载 https://github.com/powermock/powermock-examples-maven.git。现在使用PowerMock, 使这两个静态方法,返回现在mock的值。
2023-07-09 16:29:58
337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人