[英]Is there any way to load the configuration in Spring Boot application for one time?
我正在寻找一些建议或最佳实践来实现 spring 引导应用程序的单元测试。
我有多个单元测试类,在每个类中,我需要添加如下配置:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBootApplication.class)
public class ServiceRequestControllerTest{
...
}
因此,当我运行目标 maven 测试( mvn clean test
)时,会多次加载 spring 配置。 例如,我有五个单元测试类,所以它会加载配置五次,这会减慢项目的构建速度。
问题:有没有办法为所有单元测试类只加载一次这个配置?
使用@ContextConfiguration
注释。 它的默认行为是在测试之间重用上下文。
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = SpringBootApplication.class)
public class ServiceRequestControllerTest{
...
}
我们必须始终处理异常,因为它允许我们拥有更大的应急控制。 还必须始终使用 JSON 作为 Rest 响应的基础,所以我们会有这样的事情:
@RestController
public class ControllerAddress {
@PostMapping("/address")
public ResponseEntity<?> postAddress(@RequestBody String address) {
Map<String, Object> response = new HashMap<>();
try {
response.put("state", true);
return new ResponseEntity<>(response, HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
response.put("message", e.getMessage());
return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
但是,如果您不想使用 JSON 并且您希望 boolean 变量 true / false 直接响应,则可以更改以下行:
response.put("state", true);
return new ResponseEntity<>(response, HttpStatus.OK);
为了:
return new ResponseEntity<>(true, HttpStatus.OK);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.