首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用WebTestClient测试服务器发送事件

用WebTestClient测试服务器发送事件
EN

Stack Overflow用户
提问于 2020-04-24 15:00:05
回答 1查看 1.8K关注 0票数 0

我想知道什么是测试SSE的最好方法?

我想测试的是,我想检查我发送的消息(使用Kafka)是否与我在SSE中接收的消息相同。

我已经读到我可以使用WebTestClient来完成这个任务,但我不明白的是如何连接到SSE,发送消息,然后检查我的消息是否正确。

我提供了以下守则:

代码语言:javascript
复制
  public void sseIsRunning() {
    WebTestClient client = WebTestClient.bindToServer()
      .baseUrl("http://localhost:8080")
      .build();

     client.get()
      .uri("/sse/1")
      .accept(TEXT_EVENT_STREAM)
      .exchange()
      .expectStatus().isOk()
      .returnResult(MyEvent.class);

     StepVerifier.create(result.getResponseBody())
      .expectNext(myEvent())
      .thenCancel()
      .verify();
}
代码语言:javascript
复制
  private MyEvent myEvent() {
    MyEvent myEvent = new MyEvent();
    myEvent.setClientId(1);
    return myEvent;
  }
代码语言:javascript
复制
  public void messageIsSent() {
    kafka.sendMessage("myTopic", myEvent());
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-28 11:26:36

我的问题是我不得不订阅

代码语言:javascript
复制
public void sseIsRunning() {
WebTestClient client = WebTestClient.bindToServer()
  .baseUrl("http://localhost:8080")
  .build();

 client.get()
  .uri("/sse/1")
  .accept(TEXT_EVENT_STREAM)
  .exchange()
  .expectStatus().isOk()
  .returnResult(MyEvent.class)
  .getResponseBody()
  .subscribe(new Consumer<String>() {
    @Override
    public void accept(String event) {
      // response map for MyEvent class
    }
  });

}

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

https://stackoverflow.com/questions/61411328

复制
相关文章

相似问题

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