Java Spring MockMvc测试:虚张声势allowableValues未过滤错误参数
我有一个JavaAPI(Post),它需要一个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
PersonDTO
作为请求输入
在PersonDTO
中有一个字段gender
,我用allowableValues=man,woman
进行了注释,当我从外部调用API时,它运行良好。如果我输入其他值,它将显示400个错误的请求代码
但是当我做集成测试时,我使用MockMvc
做一个postPersonDTO
,其中gender
的值是其他值,它返回200而不是400,这意味着allowableValues=man,woman
不起作用
如何修复此问题?swagger注释仅用于swagger ui,以提供可能值()的下拉列表,因此MockMvc会忽略该值。要检查数据中的允许值,请使用枚举来表示字段性别而不是字符串,或者使用Bean Validation@Pattern with regex来表示字段性别。Hi,您的意思是,即使我使用客户端(而不是Swagger UI)调用API,允许的值也不会控制输入?所以我必须在我的代码中添加控件?您好。是的,这就是我使用这个注释的体验。