如何解决需要进行哪些修改才能运行 Wiremock?
我有一个名为 ReportService 的 .Net Core Web API 解决方案,它调用另一个 API 端点(我们可以称之为 PayrollService)来获取工资报告。所以我的要求是使用 wiremock.Net 模拟 PayrollService。
目前我也写了一个自动化测试用例,它会直接调用ReportService控制器并执行所有服务逻辑,还有调用PayrollService和DB层逻辑的类,并将从ReportService获取HTTP结果。
请注意,自动化测试用例是一个单独的解决方案。所以我的要求是像以前一样在 ReportService 上运行自动化测试用例,并且工资单服务将被 wiremock 模拟。
那么,代码库中需要进行哪些更改?我们是否必须将 ReportService 的 url 更改为 ReportService 解决方案中的 wiremock 服务器基本 url?请让我们知道,并请使用我在问题中使用的有关项目名称的术语,以便我清楚。
解决方法
您的假设确实是正确的,您已经使 ReportService
使用的基本 URL 可配置。
为了您的单元/集成测试,您可以提供运行 WireMock.Net 服务器的 URL。
示例:
[Test]
public async Task ReportService_Should_Call_External_API_And_Get_Report()
{
// Arrange (start WireMock.Net server)
var server = WireMockServer.Start();
// Setup your mapping
server
.Given(Request.Create().WithPath("/foo").UsingGet())
.RespondWith(
Response.Create()
.WithStatusCode(200)
.WithBody(@"{ ""msg"": ""Hello world!"" }")
);
// Act (configure your ReportService to connect to the URL where WireMock.Net is running)
var reportService = new ReportService(server.Urls[0]});
var response = reportService.GetResport();
// Assert
Assert.Equal(response,...); // Verify
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。