如何使用wiremock模拟java.net.Socket?

时间:2016-07-28 08:39:23

标签: java wiremock

我需要使用wiremock技术来模拟java.net.Socket类...是否可以对Socket类进行线程化?

1 个答案:

答案 0 :(得分:3)

即使我有点太晚了,但如果以后有人提出这个问题:

我的情况完全相同。我实现了一个单独的JUnit @Rule,它启动/停止ServerSocket并接受来自测试用例的Socket请求。

我不允许与您分享代码,因为它属于公司。但我可以分享动力滑坡,这肯定会帮助你实现它。

enter image description here

在JUnit中,您正在使用一个客户端/服务来建立与给定端口的套接字通信(在我的例子中:9999)。套接字的所有WireMock响应都以相同的样式编写,如HTTP请求/响应。使用“any”方法的简化示例:

WireMock.givenThat(WireMock.anyUrl()).withRequestBody(WireMock.containing("blah blah")).willReturn(WireMock.aResponse().withBody("Hello World!")));

如果您的套接字/客户端正在发送“blah blah”的主体,那么WireMock将返回“Hello World!”当HTTP实体和HTTP实体的内容被套接字代理转发到套接字/客户端时。

希望它有所帮助, 克里斯