我正在考虑使用“ WireMock”实用程序,以便为自动测试创建基于HTTP的API的简单模拟器。我的问题是,某些测试需要服务器发送的事件(SSE),目前(根据我在其github注释中阅读的内容),当前不支持(至少不是开箱即用)。有人知道我是否可以使用WireMock库的现有功能来实现简单的SSE模拟器,或者是否知道一些支持SSE的相同类型的替代库?
答案 0 :(得分:0)
作为一种选择,您可以手动构建事件流并像这样模拟来自 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)));