-1

当我在单元测试项目中使用模拟概念初始化 httpcontext.Request.Url 时,源项目未初始化。所以它抛出空引用异常。你能告诉我如何解决这个问题吗?

前任:

实际代码

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();
}
4

1 回答 1

0

您是否尝试过使用

HttpContextBase

创建一个工厂来获取您的上下文,您可以在其中将真实请求替换为您想要的任何模拟。可根据要求提供更多代码

查看我自己测试中的笔记,我为一个很好地解释事情的博客添加了书签 http://www.codethinked.com/Using-SystemWebAbstractions-in-Your-WebForms-Apps

于 2012-09-25T09:40:46.427 回答