如何在单元测试asp.net mvc应用程序中模拟Request对象

Sai*_*ash 7 c# asp.net-mvc unit-testing moq request

我正在开发一个asp.net mvc 3.0应用程序.在单元测试我的控制器中的一个动作方法时,我收到了一个错误.

如何模拟: Request.Params["FieldName"]

我已经包含了Moq框架,但不确定如何传递价值

这是我的代码...请建议......

 var request = new Mock<System.Web.HttpRequestBase>();

 request
     .SetupGet(x => x.Headers)
     .Returns(
         new System.Net.WebHeaderCollection
         {
             {"X-Requested-With", "XMLHttpRequest"}
         });

 var context = new Mock<System.Web.HttpContextBase>();

 context.SetupGet(x => x.Request).Returns(request.Object);

 ValidCodeController target = new ValidCodeController();

 target.ControllerContext =
     new ControllerContext(context.Object, new RouteData(), target);
Run Code Online (Sandbox Code Playgroud)

Chr*_*tle 11

Params是一个NameValueCollection可以类似于以下方式设置的属性Headers:

var requestParams = new NameValueCollection
{
    { "FieldName", "value"}
};

request.SetupGet(x => x.Params).Returns(requestParams);
Run Code Online (Sandbox Code Playgroud)