WireMock.net 存根 WCF 服务调用
WireMock.net stubbing WCF service calls
我有一个运行在 http://localhost:8072/MyWCFService 上的 WCF 服务,需要为集成测试设置一个 wiremock 存根。我有以下代码作为初始尝试:
var server = WireMockServer.Start();
server
.Given(
Request.Create().WithPath("http://localhost:8072/").UsingPost()
)
.RespondWith(
Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "text/xml")
.WithBody("Hello world!")
);
但这失败了(调用代码只是超时)。 Wiremock 是否能够模拟 WCF SOAP 调用?如果是这样,需要什么设置?我猜它比我上面的幼稚尝试更复杂。
使用 WireMock.Net 模拟服务需要这些步骤:
- 使用
var server = WireMockServer.Start();
启动 WireMock.Net 服务器。
- 获取此 WireMock.Net 服务器所在的 URL 运行
var url = server.Urls[0];
- 更改您的(客户端)代码以使用 url 而不是真正的 url。
- 现在,当您的真实客户端代码执行 WCF 调用时,此调用会发送到 WireMock.Net,如果此请求匹配,则会返回您的响应。
另一件事,在您的示例中,您不需要像 "http://localhost:8072/"
这样的路径。在您的情况下,您可以跳过 WithPath
或使 WireMock.Net 在 /ThisIsMyApi
之类的路径上做出反应
有关详细信息,请参阅 WIKI。
我有一个运行在 http://localhost:8072/MyWCFService 上的 WCF 服务,需要为集成测试设置一个 wiremock 存根。我有以下代码作为初始尝试:
var server = WireMockServer.Start();
server
.Given(
Request.Create().WithPath("http://localhost:8072/").UsingPost()
)
.RespondWith(
Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "text/xml")
.WithBody("Hello world!")
);
但这失败了(调用代码只是超时)。 Wiremock 是否能够模拟 WCF SOAP 调用?如果是这样,需要什么设置?我猜它比我上面的幼稚尝试更复杂。
使用 WireMock.Net 模拟服务需要这些步骤:
- 使用
var server = WireMockServer.Start();
启动 WireMock.Net 服务器。 - 获取此 WireMock.Net 服务器所在的 URL 运行
var url = server.Urls[0];
- 更改您的(客户端)代码以使用 url 而不是真正的 url。
- 现在,当您的真实客户端代码执行 WCF 调用时,此调用会发送到 WireMock.Net,如果此请求匹配,则会返回您的响应。
另一件事,在您的示例中,您不需要像 "http://localhost:8072/"
这样的路径。在您的情况下,您可以跳过 WithPath
或使 WireMock.Net 在 /ThisIsMyApi
有关详细信息,请参阅 WIKI。