支持服务器发送事件(SSE)的模拟库

7

我考虑使用"WireMock"实用程序来创建HTTP基础API的简单模拟器,以进行自动测试。我的问题是,一些测试需要服务器发送事件(SSE),这似乎目前(至少不是直接)不被支持,根据他们在GitHub评论中的说法。是否有人知道我可以使用现有的WireMock库功能实现简单的SSE模拟器,或者知道一些同类型的替代库,支持SSE呢?

2个回答

1
作为一种选择,您可以手动构建事件流,并模拟来自SSE终端点的响应,如下所示(我使用wiremock-jre8-standalone:2.27.1):
...
import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.givenThat;
import static com.github.tomakehurst.wiremock.client.WireMock.notFound;
import static com.github.tomakehurst.wiremock.client.WireMock.okForContentType;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
...
String eventStream =
            "id:id1\nevent:event1\ndata:data1\n\n" +
            "id:id2\nevent:event2\ndata:data2\n\n" +
            "id:id3\nevent:event3\ndata:data3\n\n";
givenThat(get(urlPathEqualTo("/sse"))
            .willReturn(okForContentType("text/event-stream", eventStream)));

我试图在Quarkus测试中使用类似的代码,但失败了。你可以在https://stackoverflow.com/questions/76926164/mock-sse-endpoind-with-wiremock-in-quarkus上找到更多信息。 - undefined

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接