一般写个新的东西,测试都是用单元测试,测试新写的,AOP一直没有作用,看了网上大部分文章都是controller于是好奇,是不是必须接口请求才可以呢,于是用接口请求的方式,测试了切面,结果测试可以通过,后面发现,原来是因为单元测试模式下,默认是关闭AOP的,所以需要打开AOP才可以,具体如下:
背景:使用springboot实现了aop,通过controller的接口测试走了aop的逻辑,但是单元测试的时候aop逻辑失效,debug也没有走aop的逻辑。
原因如下:1.@EnableAspectJAutoProxy是开启aop功能的注解。
2.springboot默认开启@EnableAspectJAutoProxy(true)。
3.但是在单元测试时默认是不开启注解@EnableAspectJAutoProxy,所以就没有开启aop功能,执行不了aop逻辑。
解决办法:在单元测试的类上加注解@EnableAspectJAutoProxy(true),开启aop功能。