在写SpringBoot单元测试中,需要mock一个Bean的一个方法,但是该方法有@Async
注解。不管怎么写Mock方法,都会在Mock校验的时候报错,提示该方法无法被Mock。
在经过大量搜索后,有两种解决方案:
- 去掉
@EnableAsync
注解 - 把
@EnableAsync
加上参数,@EnableAsync(mode = AdviceMode.ASPECTJ)
,当把mode设置为AdviceMode.ASPECTJ
,Mock方法能被正常执行,但是该方法会变成同步调用。