为什么 Spring WebFlux MockServerRequest 不允许空 body?
Why doesn't Spring WebFlux MockServerRequest allow an empty body?
我正在为 Spring WebFlux 应用程序编写一些测试,我正在尝试模拟一个请求没有 body 的场景。我伸手去拿 built-in MockServerRequest
,我想我会使用 built-in 模拟来制作我自己的。它确实允许构建一个没有 body 的实例,但我的测试失败了,因为它的所有提取 body contain an assertion that the body is not null 的方法都失败了。这似乎与实际请求的行为方式不一致。完全可以发出没有 body 的请求。我还想说,有代码检查是否存在 body 是合理的,因为 awaitBodyOrNull
(我使用的是 Kotlin)等方法的存在支持。
我missing/misunderstanding这里有什么东西吗?我正在通过 MockServerRequest.builder().build()
构建我的模拟(被测方法不关心 body 以外的任何东西)。这个 class 可能实际上并不打算单独使用吗?我没有发现其他人问过这个问题,所以我觉得我一定是忽略了什么。
现在我将通过制作自己的模拟来解决这个问题。
MockServerRequest.Builder
希望您给它一个已经包裹在 Mono
中的主体。它不会为您做任何包装。所以模拟空请求是用 MockServerRequest.builder().body(Mono.empty<TestDto>())
.
完成的
我正在为 Spring WebFlux 应用程序编写一些测试,我正在尝试模拟一个请求没有 body 的场景。我伸手去拿 built-in MockServerRequest
,我想我会使用 built-in 模拟来制作我自己的。它确实允许构建一个没有 body 的实例,但我的测试失败了,因为它的所有提取 body contain an assertion that the body is not null 的方法都失败了。这似乎与实际请求的行为方式不一致。完全可以发出没有 body 的请求。我还想说,有代码检查是否存在 body 是合理的,因为 awaitBodyOrNull
(我使用的是 Kotlin)等方法的存在支持。
我missing/misunderstanding这里有什么东西吗?我正在通过 MockServerRequest.builder().build()
构建我的模拟(被测方法不关心 body 以外的任何东西)。这个 class 可能实际上并不打算单独使用吗?我没有发现其他人问过这个问题,所以我觉得我一定是忽略了什么。
现在我将通过制作自己的模拟来解决这个问题。
MockServerRequest.Builder
希望您给它一个已经包裹在 Mono
中的主体。它不会为您做任何包装。所以模拟空请求是用 MockServerRequest.builder().body(Mono.empty<TestDto>())
.