使用 Okhttp.MockebServer 测试 websocket
Posted
技术标签:
【中文标题】使用 Okhttp.MockebServer 测试 websocket【英文标题】:Using Okhttp.MockebServer for testing websocket 【发布时间】:2022-01-14 12:34:15 【问题描述】:我正在使用 okhttp.MockWebServer 来测试 rest api 调用。 有没有办法用它来模拟 websocket 调用?
本质上,我有一个 ws 客户端(客户端扩展了 WebSocketListener),它调用外部 websocket 服务器并异步获取响应。 我想模拟这个服务器,以便它可以用于 junit 测试。
有什么想法吗?
谢谢
【问题讨论】:
【参考方案1】:查看https://github.com/square/okhttp/blob/f8fd4d08decf697013008b05ad7d2be10a648358/okhttp/src/test/java/okhttp3/internal/ws/WebSocketHttpTest.java中的测试
@Test public void serverMessage()
webServer.enqueue(new MockResponse().withWebSocketUpgrade(serverListener));
WebSocket webSocket = newWebSocket();
clientListener.assertOpen();
WebSocket server = serverListener.assertOpen();
server.send("Hello, WebSockets!");
clientListener.assertTextMessage("Hello, WebSockets!");
closeWebSockets(webSocket, server);
【讨论】:
以上是关于使用 Okhttp.MockebServer 测试 websocket的主要内容,如果未能解决你的问题,请参考以下文章
如何在 testRigor 的一个测试中使用测试套件之前和测试套件之后?