使用MockServerRequest断言WebFlux ServerResponse [英] Assert WebFlux ServerResponse using MockServerRequest

查看:20
本文介绍了使用MockServerRequest断言WebFlux ServerResponse的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将路由器层和处理器层分开,所以我不想使用this question中建议的WebTestClient。我认为把WebTestClient扔在这个问题上不是正确的解决方案。

在我的例子中,我使用MockServerRequest,它只允许测试http状态代码和标头。无法断言响应的正文。

val request = MockServerRequest.builder()
            .method(HttpMethod.GET)
            .uri(URI.create("/service"))
            .build()

StepVerifier.create(myHandler.handleGet(request))
            .assertNext { /* and assertThat(it.body()) ...  */  }
            .verifyComplete()

有没有办法断言身体?如果没有,那么为什么还有其他选择?

推荐答案

调试时注意到可以看到Body(实体)。因此,我检查了返回的类及其层次结构。我已经意识到选角可能会解决这个问题,而且它奏效了(尽管我不确定这是不是正确的方式)。

有问题的代码:

val request = MockServerRequest.builder()
            .method(HttpMethod.GET)
            .uri(URI.create("/service"))
            .build()

StepVerifier.create(myHandler.handleGet(request))
            .assertNext { assertThat((it as EntityResponse<Fleet>).entity())
                              .isNotNull /* add more assertions */ }
            .verifyComplete()

这篇关于使用MockServerRequest断言WebFlux ServerResponse的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆