首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MockServer意外响应为空正文

MockServer意外响应为空正文
EN

Stack Overflow用户
提问于 2020-11-10 17:14:01
回答 1查看 572关注 0票数 0

让我们看一个测试,它使用MockServer (org.mock-server:mockserver-netty:5.10.0)模拟响应。

预计响应正文将等于字符串"something"。然而,这个测试失败了,因为响应主体是一个空字符串。

代码语言:javascript
复制
  @Test 
  void test1() throws Exception {

    var server = ClientAndServer.startClientAndServer(9001);

    server
        .when(
            request().withMethod("POST").withPath("/checks/"),
            exactly(1)
        )
        .respond(
            response()
                .withBody("\"something\"")
                .withStatusCode(205)
                .withHeader("Content-Type", "application/json")
        );

    HttpRequest request = HttpRequest.newBuilder()
                                     .uri(URI.create("http://localhost:9001/checks/"))
                                     .POST(BodyPublishers.noBody())
                                     .build();

    HttpResponse<String> response =
        HttpClient.newHttpClient().send(request, BodyHandlers.ofString());

    assertEquals(205, response.statusCode());
    assertEquals("something", response.body()); // fails
  }

如何使响应体等于response().withBody(...)中提供的字符串

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-10 21:42:19

问题出在客户端。它会丢弃内容。

为什么?

因为,HTTP 205就是RESET_CONTENT。这个状态被意外地选为“与HTTP 200不同的术语”进行测试,不幸的是导致了这种行为。尽管它严格遵循HTTP spec,但它看起来是非常常见的“意外”错误(即here)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64765944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档