使用 Okhttp.MockebServer 测试 websocket

Using Okhttp.MockebServer for testing websocket

我正在使用 okhttp.MockWebServer 来测试剩余的 api 调用。 有没有办法用它来模拟 websocket 调用?

本质上,我有一个 ws 客户端(客户端扩展 WebSocketListener),它调用外部 websocket 服务器并异步返回响应。 我想模拟这个服务器,以便它可以用于 junit 测试。

有什么想法吗?

谢谢

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