我正在编写一个将数据写入其中的公共函数,HttpContext.Current.Response.AppendToLog
有没有办法为此编写单元测试?
我尝试创建HttpContext
并分配给的模拟/自定义对象,HttpContext.Current
但如何断言 AppendToLog 写入的数据。
我正在编写一个将数据写入其中的公共函数,HttpContext.Current.Response.AppendToLog
有没有办法为此编写单元测试?
我尝试创建HttpContext
并分配给的模拟/自定义对象,HttpContext.Current
但如何断言 AppendToLog 写入的数据。
制作一个接口并用一个实现包装 HttpContext。
public interface IHttpContext
{
void AppendToResponseLog(/*parmas go here*/);
}
public class HttpContextWrapper : IHttpContext
{
private HttpContext _httpContext = HttpContext.Current; //or constructor param
public void AppendToResponseLog(/*parmas go here*/)
{
_httpContext.Response.AppendToLog(/*params*/);
}
}
现在让你的类依赖于IHttpContext
而不是HttpContext.Current
. 至于测试,您现在可以模拟IHttpContext
.
注意:对您希望能够测试/模拟的所有 .NET Framework 依赖项使用相同的方法。