繁体   English   中英

模拟 Swagger Codegen 生成的 api 客户端

[英]Mocking the api client generated by Swagger Codegen

我使用 swagger-codegen 生成了 C# 客户端。 目前我正在围绕该客户端编写一个包装器,并希望围绕我的逻辑进行单元测试。 但是,我想弄清楚如何模拟对生成的客户端的调用。 我正在使用最小起订量框架。 我正在尝试使用How to mock RestSharp portable library in Unit Test中的代码来模拟 RestClient。 但是我无法弄清楚如何将 RestClient 注入生成的客户端。

生成的 swagger 客户端将是一个分部类。
为客户端添加一个分部类并提取您要模拟的方法。
假设您想要模拟 Get by id 方法。

public interface IApiClient
{
    Task<Item> GetItemByIdAsync(int id);
}

public partial class swaggerClient: IApiClient
{
    
}

在您的测试代码中,您必须使用界面进行模拟:

var mock= new Mock<IApiClient>();
mock.Setup(r => r.GetItemByIdAsync(It.IsAny<int>()))
      .ReturnsAsync((int id) => new Item(id));
var client = mock.Object;

测试愉快!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM