为了测试验证,您启动web层并发送一些带有一些错误的请求,这样您就可以测试后端验证。点击此处阅读更多关于MockMvc的信息:
https://spring.io/guides/gs/testing-web/
或者,您可以在不启动Spring上下文的情况下对其进行测试,只需使用默认验证器,如下所示:
@Test
void testNullId() {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Request req = new Request(null, 123, "BB");
Set<ConstraintViolation<Request>> result = validator.validate(req);
assertThat(result).hasSize(1);
var violation = result.iterator().next();
assertThat(violation.getMessage()).isEqualTo("{request.id.notNull}");
}
这将使您能够创建更快的测试并快速获得反馈。例如,你可以写
@ParameterizedTest
在这里,您将指定inout(请求有效负载)和预期输出(约束冲突消息)的组合。
对于
toString()
只需调用该方法并对返回的String断言:
@Test
void testToString() {
Request req = new Request("aaa", 123, "BB");
assertThat(req.toString()).isEqualTo("Id:aaa revision:123 state:BB");
}