1

我想要实现的是测试一些背后有网络套接字通信的逻辑。

我最近实现了 WebSocket 客户端端点,我想像 http 与 WireMock 的集成一样对其进行测试——以声明方式指定来自外部 WebSocket 服务器的 Web 套接字消息。

预期的库/API:

//      SomeLibrary is configured properly

    SomeLibrary.stubSocketMessage(forSession(idFromString("Some session id.")))
        .respondTo("Message sent from service with web socket client endpoint.")
        .withText("Response from web socket server stub.")
        .withDelay(500);

//        calling my logic that uses WS / sends message
//        assertions

我找不到这样的库,因此我只是在我的测试包中实现了嵌入式 websocket 服务器。对于单会话场景来说已经足够了。

总结一下:我在服务层的某个地方有一个 websocket 连接,我想用 ie MockMvc 编写端到端测试。我想要一些预定义的 WS 模拟行为,因此我需要一个嵌入式 http/ws 服务器并指定其 WS 服务器端点的行为。

我想要实现的目标有解决方案吗?写这样的测试有意义吗?如果不是,为什么?

4

1 回答 1

0

@patrolfr,

我将尝试回答您的部分问题:是否有解决方案。

您可以查看https://stubby4j.com存根服务器。它支持通过 HTTP/1.1、HTTP/2 和 WebSockets 协议对外部系统进行存根。该库使用基于 YAML 的配置来描述存根服务器行为。

更具体地说,关于 WebSockets 协议,请查看文档:https ://stubby4j.com/docs/websockets_configuration_howto.html

完全披露:我是该项目的提交者。

于 2021-12-10T08:45:51.617 回答