-1

単体テスト プロジェクトでモック コンセプトを使用して 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();
}
4

1 に答える 1

0

使ってみましたか

HttpContextBase

ファクトリを作成してコンテキストを取得し、実際のリクエストを必要なモックに置き換えることができます。リクエストに応じて利用可能なその他のコード

私自身のテストのメモを見て、物事を非常によく説明しているブログをブックマークしました http://www.codethinked.com/Using-SystemWebAbstractions-in-Your-WebForms-Apps

于 2012-09-25T09:40:46.427 に答える