当我使用模拟概念初始化单元测试项目中的httpcontext.Request.Url时,源项目未初始化。所以它抛出null引用异常。你能告诉我如何解决这个问题吗?
例如:
实际代码
class sample
{
public void sample_method()
{
string url=Request.Url.ToString();
}
}
更新了单元测试代码
class sample: IRequestAttr
{
private readonly IRequestAttr _attr;
public sample(IRequestAttr attr)
{
_attr=attr;
}
public string URL
{
return HttpContext.Request.Url.ToString();
}
public void sample_method()
{
string url=_attr.URL();
}
}
public interface IRequestAttr
{
string URL();
}
答案 0 :(得分:0)
您是否尝试过使用
HttpContextBase
创建一个工厂来获取您的上下文,您可以使用您想要的任何模拟替换实际请求。可根据要求提供更多代码
在我自己的测试中查看笔记,我已经为一个能够很好地解释事情的博客添加了书签 http://www.codethinked.com/Using-SystemWebAbstractions-in-Your-WebForms-Apps