Spring MockMvc 测试:Swagger allowableValues 未过滤不良参数
Spring MockMvc test : Swagger allowableValues not filtering bad argument
我有一个 Java API (Post) 需要 PersonDTO
作为请求输入。
在PersonDTO
中有一个字段gender
,我用allowableValues = man, woman
注释,当我从外部调用API时它运行良好。如果我输入其他值,它将显示 400 错误的请求代码。
但是当我做我的集成测试时,我使用 MockMvc
做一个 post PersonDTO
和 gender
的一些其他值,它 returns 200 而不是 400 - 这意味着 allowableValues = man, woman
不工作。
我该如何解决这个问题?
swagger-annotation 用于 swagger-ui 仅用于提供包含可能值 (see example of swagger-ui) 的下拉列表,因此 MockMvc 会忽略它。要检查 DTO 中允许的值,请使用枚举作为字段性别而不是字符串,或者使用带有正则表达式的 Bean-Validation @Pattern 作为字段性别。
我有一个 Java API (Post) 需要 PersonDTO
作为请求输入。
在PersonDTO
中有一个字段gender
,我用allowableValues = man, woman
注释,当我从外部调用API时它运行良好。如果我输入其他值,它将显示 400 错误的请求代码。
但是当我做我的集成测试时,我使用 MockMvc
做一个 post PersonDTO
和 gender
的一些其他值,它 returns 200 而不是 400 - 这意味着 allowableValues = man, woman
不工作。
我该如何解决这个问题?
swagger-annotation 用于 swagger-ui 仅用于提供包含可能值 (see example of swagger-ui) 的下拉列表,因此 MockMvc 会忽略它。要检查 DTO 中允许的值,请使用枚举作为字段性别而不是字符串,或者使用带有正则表达式的 Bean-Validation @Pattern 作为字段性别。