微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要进行哪些修改才能运行 Wiremock?

如何解决需要进行哪些修改才能运行 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 举报,一经查实,本站将立刻删除。