我想知道什么是测试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
}
});
}