2012-05-01 19 views
0

私はhanselman tutorialを使って、入力パラメータとしてhttpcontextをとるメソッドの単体テストを作成するためにMoqを使用しています。moqを使用してhttpcontext.requestを設定する

public static class MvcMockHelpers 
{ 

    public static HttpContextBase FakeHttpContext() 
    { 
     var context = new Mock<HttpContextBase>(); 
     var request = new Mock<HttpRequestBase>(); 
     var response = new Mock<HttpResponseBase>(); 
     var session = new Mock<HttpSessionStateBase>(); 
     var server = new Mock<HttpServerUtilityBase>(); 

     context.Setup(ctx => ctx.Request).Returns(request.Object); 
     context.Setup(ctx => ctx.Response).Returns(response.Object); 
     context.Setup(ctx => ctx.Session).Returns(session.Object); 
     context.Setup(ctx => ctx.Server).Returns(server.Object); 

     return context.Object; 
    } 

    public static HttpContextBase FakeHttpContext(string url) 
    { 
     var context = FakeHttpContext(); 
     context.Request.SetupRequestUrl(url); <---- error here 
     return context; 
    } 



} 

私はcontext.Request.SetupRequestUrl(URL)に、次のエラーを取得しています。

エラー1「System.Web.HttpRequestBase」「SetupRequestUrl」とタイプの「System.Web.HttpRequestBase」最初の引数を受け入れていない拡張メソッド「SetupRequestUrl」の定義が含まれていませんが、見つけることができる(あなたをしています使用するディレクティブまたはアセンブリ参照がありません)。

助けてください。

私は、httpcontextリクエストオブジェクトを設定し、コンテキスト入力パラメータを使ってメソッドに渡し、単体テストを作成できる非常に簡単なチュートリアルを見つけようとしていますが、グーグル内のすべての例は動作しないか、 。助けてください。

答えて

3

あなたはMvcMockHelpersクラスas shown by the HaackedSetupRequestUrl拡張メソッドを宣言していることを確認してください:あなたは記事からの全体のコードの断片をコピーは、貼り付ける必要があります

public static void SetupRequestUrl(this HttpRequestBase request, string url) 
{ 
    ... 
} 

+0

ダーリン、どこに表示されていますか?私はそれをグーグルで探しています –

+2

あなたはグーグルで何ですか? Haackedは彼のブログ記事にこの方法を示しました。彼の記事の中で見つけるために 'SetupRequestUrl'のためのCtrl + Fだけです。 –

+0

ダーリン、これまでのところとても良い..ありがとう –

関連する問題