[英]How can I use stub to mock httpclient in C#
在C#代码中进行单元测试时,如何使用存根模拟HTTP客户端?
我不想使用Moq,因为我有一种方法可以创建静态但非虚拟的http客户端实例。
码:
public static class HttpClientFactory
{
public static IHttpClient httpClient;
public static IHttpClient CreateHttpClient()
{
if(httpClient == null)
httpClient = new HttpClient();
return httpClient;
}
}
为什么不能仅使IHttpClient
非静态并摆脱工厂呢?
public interface IHttpClient {}
public class HttpClient : IHttpClient {}
只需模拟IHttpClient
并实现方法,然后将其注入(在构造函数或属性中)
public class SomeStuff
{
public IHttpClient Client { get; }
public SomeStuff(IHttpClient client)
{
Client = client;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.