Java Spring MockMvc测试:虚张声势allowableValues未过滤错误参数

Java Spring MockMvc测试:虚张声势allowableValues未过滤错误参数,java,spring,rest,mockito,swagger,Java,Spring,Rest,Mockito,Swagger,我有一个JavaAPI(Post),它需要一个PersonDTO作为请求输入 在PersonDTO中有一个字段gender,我用allowableValues=man,woman进行了注释,当我从外部调用API时,它运行良好。如果我输入其他值,它将显示400个错误的请求代码 但是当我做集成测试时,我使用MockMvc做一个postPersonDTO,其中gender的值是其他值,它返回200而不是400,这意味着allowableValues=man,woman不起作用 如何修复此问题?swag

我有一个JavaAPI(Post),它需要一个
PersonDTO
作为请求输入

PersonDTO
中有一个字段
gender
,我用
allowableValues=man,woman
进行了注释,当我从外部调用API时,它运行良好。如果我输入其他值,它将显示400个错误的请求代码

但是当我做集成测试时,我使用
MockMvc
做一个post
PersonDTO
,其中
gender
的值是其他值,它返回200而不是400,这意味着
allowableValues=man,woman
不起作用


如何修复此问题?

swagger注释仅用于swagger ui,以提供可能值()的下拉列表,因此MockMvc会忽略该值。要检查数据中的允许值,请使用枚举来表示字段性别而不是字符串,或者使用Bean Validation@Pattern with regex来表示字段性别。

Hi,您的意思是,即使我使用客户端(而不是Swagger UI)调用API,允许的值也不会控制输入?所以我必须在我的代码中添加控件?您好。是的,这就是我使用这个注释的体验。