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



我有一个. net Core web API解决方案ReportService,它调用另一个API端点(我们可以调用这个PayrollService)来获取工资报告。所以我的要求是使用Wiremock.Net模拟PayrollService。

目前我还编写了一个自动化测试用例,它将直接调用ReportService控制器并执行所有服务逻辑,以及调用PayrollService和DB层逻辑的类,并将从ReportService获得HTTP结果。

请注意自动化测试用例是一个单独的解决方案。所以我的要求是像以前一样在ReportService上运行自动化测试用例,并且工资服务将由Wiremock模拟。

那么,需要在代码库中发生哪些更改呢?我们是否必须将ReportService的url更改为ReportService解决方案中的Wiremock服务器基url ?请让我们知道,请使用我在问题中使用的关于项目名称的术语,以便我清楚。

您的假设确实是正确的,您已经使ReportService使用的基础URL可配置。

所以对于你的单元/集成测试,你可以提供WireMock。. Net服务器正在运行。

的例子:

[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
}

相关内容

  • 没有找到相关文章

最新更新