c# - 如何在单元测试 asp.net mvc 应用程序中模拟请求对象

标签 c# asp.net-mvc unit-testing request moq

我正在开发一个 asp.net mvc 3.0 应用程序。在对我的 Controller 中的一种操作方法进行单元测试时,我遇到了一个错误。

如何模拟: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);

最佳答案

Params 是一个 NameValueCollection 属性,其设置方式与 Headers 类似:

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

request.SetupGet(x => x.Params).Returns(requestParams);

关于c# - 如何在单元测试 asp.net mvc 应用程序中模拟请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377907/

相关文章:

c# - 有没有办法在 C# 中使用访问器的参数

c# - 如何在 MS Visual Studio 2013 中创建数据库?

c# - 模拟 Controller 以测试区域内的 ViewEngine - nullreference 和 RouteData

asp.net - 使用 JQuery 渲染部分 View 时遇到问题

jQuery UI 自动完成 : Menu does not show up

c# - 以编程方式将数据源绑定(bind)到报表服务器中的 rdl - SSRS

c# - Google Vision API - 分析图像序列

ruby-on-rails - 我应该如何在 Ruby on Rails 中测试具有大量属性和验证的模型?

ios - 如何对 iOS View Controller 进行单元测试?

c - 如何避免单元测试中的浮点舍入错误?