[英]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.