Java 测试时如何删除重复的路由名称
我有一个简单的控制器REST:Java 测试时如何删除重复的路由名称,java,spring,spring-boot,spring-mvc,spring-mvc-test,Java,Spring,Spring Boot,Spring Mvc,Spring Mvc Test,我有一个简单的控制器REST: @RestController @RequestMapping("/employees") public class EmployeeController { @Autowired private EmployeeRepository repository; @GetMapping("") List<Employee> all() { return repository.findAll();
@RestController
@RequestMapping("/employees")
public class EmployeeController {
@Autowired
private EmployeeRepository repository;
@GetMapping("")
List<Employee> all() {
return repository.findAll();
}
@GetMapping("/{id}")
Employee one(@PathVariable Long id) {
return repository
.findById(id)
.orElseThrow(() -> new EmployeeNotFoundException(id));
}
}
但问题是路线“/员工”的名称重复太多。
如果有更改路由名称的要求,我将不得不更改100个测试。非常糟糕
还有如何在使用基本路由和参数时消除重复,这里只有一个参数:{id}。
但也可能需要更改参数的名称
请说明如何组织代码并消除重复。您可以使用
EmployeeController.class.getAnnotation(RequestMapping.class).value()[0];
从控制器的@RequestMapping(“/employees”)获取路径
“/雇员”
我认为最好的解决办法是引入
公共静态最终字符串路径=“/employees”代码>EmployeeController中的变量
,因此您可以在任何地方引用“/employees”路径我们无法将此变量添加到注释中。所以需要在控制器中复制字符串,不是吗?您可以在注释中使用此变量,因为它是最终变量。就像使用@RequestMapping(EmployeeController.PATH)
见鬼,我没有包括类名…:-(
EmployeeController.class.getAnnotation(RequestMapping.class).value()[0];