gpt4 book ai didi

java - 使用 WebTestClient 测试服务器发送事件 (SSE)

转载 作者:行者123 更新时间:2023-12-01 17:13:03 26 4
gpt4 key购买 nike

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

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

我读到可以使用 WebTestClient 来做到这一点,但我不明白的是如何连接到 SSE、发送消息,然后检查我的消息是否正确。

我提供了以下代码:

  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();
}
  private MyEvent myEvent() {
MyEvent myEvent = new MyEvent();
myEvent.setClientId(1);
return myEvent;
}
  public void messageIsSent() {
kafka.sendMessage("myTopic", myEvent());
}

最佳答案

我的情况是我必须订阅

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
}
});

}

关于java - 使用 WebTestClient 测试服务器发送事件 (SSE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61411328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com