asp.net mvc rhino 模拟 httprequest 值

2024-02-08

我正在尝试编写一个测试,我可以模拟 HttpRequestBase 以返回这样的发布值吗?我怎样才能实现这个目标?

var collection = new NameValueCollection();
collection.Add("Id", "1");
collection.Add("UserName", "");


var mocks = new MockRepository();

  using (mocks.Record())
  {
      Expect.Call(requestBase.Params).Return(collection);
  }

基本上我有一个要求,要求我模拟请求发布参数而不是表单值,因为 UI 客户端不是 html 表单,有什么想法如何伪造/模拟 httprequest 发布参数吗?返回类型是 nameVaueCollection


你不会喜欢听这个,但你的处理方式是错误的。您应该使用模型作为输入,并让模型绑定器填充属性,而不是直接从请求参数中获取值。这将使您的生活(包括模拟)变得更加容易,因为您将提供一个模型作为操作方法的参数,而不必模拟 HttpRequest 对象。

var model = new UserModel { ID = 1, UserName = string.Empty };

var controller = new FooController();

var result = controller.FooAction( model );

如果您必须使用参数,那么至少我建议您在模拟中使用 AAA 语法。

var request = MockRepository.GenerateMock<HttpRequestBase>();
var context = MockRepository.GenerateMock<HttpContextBase>();

var collection = new NameValueCollection();   
collection.Add("Id", "1");   
collection.Add("UserName", "");

context.Expect( c => c.Request ).Return( request ).Repeat.Any();
request.Expect( r => r.Params ).Return( collection ).Repeat.Any()

var controller = new FooController();
controller.ControllerContext = new ControllerContext( context, new RouteData(), controller );

var result = controller.FooAction();

...

context.VerifyAllExpectations();
request.VerifyAllExpectations();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp.net mvc rhino 模拟 httprequest 值 的相关文章

  • bootstrap css中垂直对齐缩略图?

    我认为这应该很简单 但我就是无法让它发挥作用 在 ASP NET MVC 中 我有一个如下所示的项目列表 div class row div class span12 ul class thumbnails foreach var film
  • 密码保护 IIS 7.5 中的 ASP.NET Web 应用程序

    我在 Windows 7 上使用 IIS 7 5 为我的 asp net 网站提供测试服务 为了阻止随意的人查看我的网站 我希望 IIS 在提供任何服务之前需要用户名和密码 我已尝试在应用程序上禁用匿名身份验证并启用 Windows 身份验
  • 如何使用资源文件设置按钮文本

    我已在测试项目下创建资源文件 但不在 App GlobalResources 下创建 如何使用资源文件设置按钮文本 例如
  • 使用 SimpleMembership 获取用户信息

    仍在尝试使用 MVC4 来掌握新的 SimpleMembership 我更改了模型以包含名字和姓氏 效果很好 我想更改登录时显示的信息 而不是在视图中使用 User Identity Name 我想做类似 User Identity For
  • DSN 到连接字符串?

    我们有一个 ASP NET 网站 该网站使用一个数据库 我们希望能够使用连接字符串来访问该数据库 我们已经成功设置了一个 DSN 来连接到这个数据库 但我似乎无法发现连接字符串的正确魔力 是否有一种直接的方法可以将 DSN 中的值转换为连接
  • Stripe Webhook 事件 续订订阅

    我在我的 Asp net 应用程序中使用 STRIPE 进行信用卡付款 应用程序有每月订阅计划 第一次当用户订阅 webhook 事件 customer subscription created 时触发 我的问题是 下个月订阅续订时哪些事件
  • 防止整数值在 ASP.NET Web API 模型绑定中设置布尔参数?

    我正在开发一个 ASP NET Web API 其中的方法采用以下模型作为输入参数 public InputModel int Id get set bool IsTrue get set 它适用于 true 和 false 值 我尝试检查
  • ASP.NET MVC:从变量设置授权属性角色时出现问题,需要 const

    我在从变量设置授权属性角色值时遇到问题 错误消息表明它需要一个 const 变量 当我创建 const 类型变量时 它工作正常 但我试图从 Web Config 文件或其他允许最终用户设置它的文件中加载值 我正在使用集成 Windows 身
  • 在为存储过程设置参数时,可以在 new SqlParameter 的构造函数中设置 TypeName 吗?

    我使用以下代码来设置调用存储过程的参数 List
  • asp.net 站点地图管理员查看用户看到的内容

    我目前正在尝试找出如何最好地为我的应用程序实施管理方面 我有一个用户网站 用户可以登录 自定义他们的个人资料 提交信息等 我希望管理用户能够登录并能够从用户列表中进行选择 从那里 管理员可以像用户一样为用户提交信息 Website Star
  • 如何在运行 ASP.NET 页面时以编程方式设置表格背景?

    我有一个 aspx 页面 其默认背景颜色是一种 当选择单选按钮的某个选项时 我需要能够以编程方式更改它 我尝试设置表的 ID 字段 但似乎无法在 C 代码隐藏文件中访问它 我原来的表是 table style width 100 backg
  • 类型定义存在于两个库中

    我正在使用 NET 4 5 构建 ASP NET Web 窗体网站 错误 The type System ComponentModel DataAnnotations Schema ForeignKeyAttribute exists in
  • 如何正确编码 mailto 链接?

    我正在生成一些 HTML 并且我想生成 XSS 和数据库内容安全的mailto关联 这里使用的正确编码是什么 这个怎么样 myLiteral Text string Format mailto 0 Content Type text htm
  • Microsoft MVC:手动触发表单验证

    有谁知道是否有办法手动触发 Net MVC 应用程序中的客户端表单验证 我想做以下事情 我已经查看了 MicrosoftMvcValidation js 中的代码 但没有找到可以在表单上调用的方法 我认为您正在寻找的验证可以在这里找到 ht
  • C# 代码在 IIS 上运行速度快,但在 Mono 上运行速度慢 - 如何改进?

    我有一个 ASP NET 应用程序 它在我的 Windows 开发计算机上运行良好 不过 服务器是运行 Mono 的 Linux 一旦上传 相同的代码在 Windows 上的运行速度会比在 Windows 机器上慢 4 到 5 倍 例如 一
  • WCF服务库项目找不到对其他项目的引用

    我的解决方案中有两个项目 MyApp Domain 和 MyApp WebService MyApp WebService 是一个 WCF 服务库 我想使用 MyApp Domain 中的一些实用函数 因此 在 MyApp WebServi
  • 多态 MVC 视图

    因此 我在 ASP NET MVC 中制作一个注册页面 其中有一个字段列表 该列表会根据许多条件 从数据库中获取 而变化 在每次更新数据库时不更改代码的情况下 在视图上显示这些字段的最佳方法是什么 我正在考虑的当前系统是制作一个带有 名称
  • 以编程方式 Godaddy 发送的电子邮件不在“已发送邮件”文件夹中 C#.net

    我正在通过以下方式发送电子邮件ASP NET代码使用godaddy邮件服务器 邮件发送成功 但未存储在已发送邮件文件夹中 我正在使用下面的代码 SmtpClient client new SmtpClient client Host smt
  • 在 MVC Razor 视图中使用旧版 ASP.NET ASCX 用户控件

    我正在尝试实现一个使用 WebForm ascx 用户控件 非 MVC 的 MVC Razor Layout cshtml 页面 我这样做是基于 Scott Hansleman 文章 将 Razor 视图和 WebForms 母版页与 AS
  • 如何使用 C# 代码使用超链接的 onClick 事件?

    我正在尝试为页面中的超链接添加条件 而不是仅仅使用特定的链接 例如 a href help Tutorial html Tutorial a 我想为不同的用户显示不同的页面 例如 如果用户以管理员身份登录 他们将看到与普通用户不同的链接 我

随机推荐