spring - @RequestBody 在集成测试范围内仅包含带有 kotlin 数据类的空值
问题描述
@编辑
问题与验证无关。经过调查,我发现在与@SpringBootTest 的集成测试中使用任何Rest 客户端(即RestTemplate/WebTestClient)执行我的代码时,解析后的@RequestBody 总是具有空值。它在正常环境中工作正常。
@PostMapping("/url")
fun executeFun(
@Valid @RequestBody MyDataClass: MyData
) = ...
data class MyDataClass(
@field:Size(min = 3, max = 5
) val myValidatedField: String = "")
)
我的数据类示例,我可以看到 Web 测试客户端产生了所需的请求:
POST http://localhost:62211/url
WebTestClient-Request-Id: [1]
Content-Type: [application/json]
Content-Length: [49]
{"myvalidatedField":"1234"}
我的集成类看起来像这样
@SpringBootTest(webEnvironment = RANDOM_PORT)
@AutoConfigureWebTestClient
internal class {
....
@Test
fun web_Client_2() {
val myData = MyDataClass("1234")
webClient.post().uri(URI_WITH_CONTEXT_PATH)
.contentType(APPLICATION_JSON)
.bodyValue(myData)
.exchange()
}```
解决方案
推荐阅读
- scala - 如何关联 rlike 和 regex_extract
- r - 如何使用 R 找到 6 次多项式与已知斜率的切线相交的 x 值?
- python - 将 JSON 文件转换为平面表
- backup - Asus WebStorage 的备份服务对任何人都有效(或绝对无效)吗?
- python - 我想逐字过滤数据帧中的行,但它给出了空白
- html - 使用 iframe 防止恶意文件是否安全
- java - java中Entry接口的使用,而不是遍历HashMap类对象
- r - 按组进行成对 ks 检验
- java - 如何同时接受 JSON 和 XML?
- powershell - Invoke-webrequest - 通过自定义 Chrome 配置文件获取请求