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