我需要使用wiremock 技术模拟java.net.Socket 类......是否可以对Socket 类进行wiremock?
即使我有点晚了,但如果有人稍后提出这个问题:
我处于完全相同的情况。我实现了一个单独的 JUnit @Rule,它启动/停止 ServerSocket 并接受来自测试用例的 Socket 请求。
我不允许与您共享代码,因为它属于公司。但我被允许分享 powerslide,它肯定会帮助你如何实现它。
在 JUnit 中,您使用的客户端/服务与给定端口(在我的情况下:9999)建立套接字通信。套接字的所有 WireMock 响应都以与 HTTP 请求/响应相同的样式编写。使用“any”方法的简化示例:
WireMock.givenThat(WireMock.anyUrl()).withRequestBody(WireMock.containing("blah blah")).willReturn(WireMock.aResponse().withBody("Hello World!")));
Run Code Online (Sandbox Code Playgroud)
如果您的套接字/客户端正在发送带有“blah blah”的正文,则 WireMock 将返回“Hello World!” 作为 HTTP Entity,HTTP Entity 的内容通过 Socket Proxy 转发到 socket/client。
希望它有所帮助,克里斯