习惯了单元测试以后,一些代码在提交前如果不测试一下总是感觉心里面空空的,没有底气可言。
Spring Boot提供的官方注释结合强大的Mockito能够解决大部分在测试方面的需求。但貌似对于代理模式下的切面却并不如意。
情景模拟
假设我们当前有一个 StudentControllor
,该控制器中存一个 getNameById
方法。
@RestController public class StudentController { @GetMapping("{id}") public Student getNameById(@PathVariable Long id) { return new Student("测试姓名"); } public static class Student { private String name; public Student(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }
在没有切面前,我们访问该方法将得到相应带有测试姓名的学生信息。
建立切面
现在,我们使用切面的方法在返回的名字后台追加一个 Yz
后缀。
@Aspect @Component public class AddYzAspect { @AfterReturning(value = "execution(* club.yunz