我升级了Spring Boot(之前是3.1.9,变成了3.2.2) 同时,spring-web版本增加(原来是6.0.17,变成了6.1.3) 之后,测试会出现错误 测试
此测试调用方法“customize”: 定制
哪里 变量 MdcService - 我们编写了一个接口“MdcService”,它定义了 MdcContext 的填充
测试抛出错误(下面给出了部分堆栈跟踪): 堆栈跟踪
如果在restTemplate测试中替换为restClient并调用restClient,则测试将以相同的错误结束 (valrestClient = RestClient.builder(restTemplate).build())
使用版本: 日志:3.5.0 春季启动:3.2.2 弹簧网:6.1.3
我找到了这些错误的解释:https://github.com/zalando/logbook/issues/1693 这是因为 HttpComponentsClientHttpRequest 在 Spring Framework 6.1 中被重新设计了。
还有一个链接(https://github.com/zalando/logbook/pull/1701)并说: 使用 writeTo() 在 httpclient5 中缓冲 HttpEntity 使用 HttpEntity.writeTo() 而不是依赖 EntityUtils.toByteArray() 来复制 HttpEntity 的 OutputStream。
因此,为了测试,需要将 EntityUtils.toByteArray() 替换为 HttpEntity.writeTo() 但是,如果 EntityUtils.toByteArray () 位于堆栈跟踪深处,该如何执行此操作 如何修复测试?
我通过更换日志库的版本解决了这个问题(原来是:3.5.0,现在变成了:3.8.0)