Wiremock.net 在单元测试中没有响应
Wiremock.net not responding in unit tests
我一直在尝试使用 Wiremock.net 模拟 HTTP 调用。我已经从控制台应用程序 运行ning 中愉快地工作了,但是当我尝试通过单元测试来完成它时,它停止响应。这是我的完整代码:
FluentMockServer serviceMock;
[TestInitialize]
public void Initialize()
{
serviceMock = FluentMockServer.Start(new FluentMockServerSettings { Urls = new[] { "http://+:5010" } });
serviceMock.Given(Request.Create().UsingPost().WithPath("/callbacks/booked"))
.RespondWith(Response.Create().WithStatusCode(200).WithHeader("Content-Type", "application/json")
.WithBodyAsJson(new List<Callback>
{
new Callback { CustomerId = 1, RequestedFor = new DateTime(2017, 12, 14, 15, 00, 01) },
}));
}
[TestMethod]
public void CanHitMockEndpoint()
{
var client = new RestClient("http://localhost:5010");
var response = client.Get<List<Callback>>(new RestRequest("/callbacks/booked"));
response.StatusCode.Should().Be(HttpStatusCode.OK);
}
[TestCleanup]
public void Cleanup() => serviceMock.Stop();
当我收到响应时,它的状态代码为零,消息 "Unable to connect to the remote server"
奇怪的是,如果我将 Initialize 和 Cleanup 项移动到控制台应用程序中,并且 运行 它并排放置,测试将正常进行。我已经确认 Initialize/Cleanup 是 运行ning,所以我肯定是遗漏了一些明显的东西,或者发生了一些奇怪的事情!
任何帮助都会很棒。
我仍然不完全确定这里的问题是什么,但我已将其缩小到端口的处理上。我已将服务器创建修改为:
serviceMock = FluentMockServer.Start();
并使用内部连接的 IP 进行我的服务设置:
var client = new RestClient(serviceMock.Urls.First());
这样就可以正常工作了。
我一直在尝试使用 Wiremock.net 模拟 HTTP 调用。我已经从控制台应用程序 运行ning 中愉快地工作了,但是当我尝试通过单元测试来完成它时,它停止响应。这是我的完整代码:
FluentMockServer serviceMock;
[TestInitialize]
public void Initialize()
{
serviceMock = FluentMockServer.Start(new FluentMockServerSettings { Urls = new[] { "http://+:5010" } });
serviceMock.Given(Request.Create().UsingPost().WithPath("/callbacks/booked"))
.RespondWith(Response.Create().WithStatusCode(200).WithHeader("Content-Type", "application/json")
.WithBodyAsJson(new List<Callback>
{
new Callback { CustomerId = 1, RequestedFor = new DateTime(2017, 12, 14, 15, 00, 01) },
}));
}
[TestMethod]
public void CanHitMockEndpoint()
{
var client = new RestClient("http://localhost:5010");
var response = client.Get<List<Callback>>(new RestRequest("/callbacks/booked"));
response.StatusCode.Should().Be(HttpStatusCode.OK);
}
[TestCleanup]
public void Cleanup() => serviceMock.Stop();
当我收到响应时,它的状态代码为零,消息 "Unable to connect to the remote server"
奇怪的是,如果我将 Initialize 和 Cleanup 项移动到控制台应用程序中,并且 运行 它并排放置,测试将正常进行。我已经确认 Initialize/Cleanup 是 运行ning,所以我肯定是遗漏了一些明显的东西,或者发生了一些奇怪的事情!
任何帮助都会很棒。
我仍然不完全确定这里的问题是什么,但我已将其缩小到端口的处理上。我已将服务器创建修改为:
serviceMock = FluentMockServer.Start();
并使用内部连接的 IP 进行我的服务设置:
var client = new RestClient(serviceMock.Urls.First());
这样就可以正常工作了。