MvcMailer:无法在使用 Url.Action 的 Razor 视图上完成 NUnit 测试

2023-12-11

这是我的问题 - 我正在使用Mvc邮件程序使用 Razor 语法创建格式良好的电子邮件,它是一个很棒的工具!

我遇到的问题是这样的 - 这是我发送的一封电子邮件的视图中的一些语法:

<p>Click here to return to <a href="@Url.Abs(Url.Action("Details", "Home", new{ Id=ViewBag.IdeaId}))">@ViewBag.IdeaName</a></p>

每当我尝试运行单元测试时,都会收到以下错误消息:

我们可以发送新评论的电子邮件通知吗?:System.ArgumentNullException:值不能为空。 参数名称:httpContext

Stacktrace - 为了简洁而缩短,仅相关部分:

在 System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) 在 Mvc.Mailer.MailerBase.CreateControllerContext() 在Mvc.Mailer.MailerBase.ViewExists(字符串viewName,字符串masterName) 在 Castle.Proxies.Invoices.MailerBase_ViewExists.InvokeMethodOnTarget() 在 Castle.DynamicProxy.AbstractInspiration.Proceed()

问题是我的 HttpContext 为 null - 有没有一种直接的方法来单元测试这个 MvcMailer 方法,而不必模拟控制器上下文中的所有内容一直到路由结果?


您可以查看标题为对您的邮件进行单元测试 at the MvcMailer 维基您需要做的就是模拟 PopulateBody 方法,然后它将绕过视图渲染作为测试的一部分。它应该类似于以下内容:

_userMailerMock.Setup(mailer => mailer.PopulateBody(It.IsAny<MailMessage>(), "Welcome", null));

希望这可以帮助!

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

MvcMailer:无法在使用 Url.Action 的 Razor 视图上完成 NUnit 测试 的相关文章

  • 使用模型优先方法时如何播种数据?

    所以我正在学习MVC3和EF4 我尝试了代码优先方法 但它对我来说太混乱了 我可以毫无问题地创建类 但最困难的部分是处理外键和彼此之间的关系 但我首先选择了模型 这样我就可以直观地设计它并查看关系在哪里 创建模型后 它会为我创建一个 SQL
  • Microsoft ASP.NET Web Pages 2 Data Nuget 包的用途是什么?

    据我了解 ASP NET MVC 4 项目所需的最低 Nuget 包是 微软 ASP NET MVC 4 微软 ASP NET 剃刀 2 微软 ASP NET 网页 2 微软网络基础设施 不过我很想知道 以下包会添加到项目中什么 Micro
  • 如何使用 Moq 模拟 Web 服务调用?

    The using下面点击了我不想实际点击的外部资源 我想测试someResult以及使用它的代码 但每次我运行单元测试时 该代码仍然尝试访问真正的 Web 服务 如何使用最小起订量来伪造对 Web 服务的真实调用 但不模拟使用中的其余代码
  • 使用 Moq 模拟实体框架 6 ObjectResult

    如何使用 Moq 模拟 Entity Framework 6 ObjectResult 以便对依赖 EF 数据库连接的代码进行单元测试 沿着这些思路阅读了大量的问题和答案 并从我所读到的内容中收集了许多有价值的信息 我已经实现了我认为相当优
  • 不使用 razor viewengine 进行 Nancy 本地化

    目前我在 Nancy 使用 razor 作为我的视图引擎 我可以在剃刀中像这样访问我的资源文件 Text text greeting 但我想切换到不同的视图引擎 是否有其他支持 TextResource 的视图引擎 在超级简单的视图引擎中本
  • 避免 VBCSCompiler 对 Roslyn 支持的 ASP.NET Razor MVC 视图造成性能影响?

    为了在 MVC5 上的 Razor 视图中支持 C 6 我们通过 web config 打开了 Roslyn 编译器平台
  • 从 teamcity 运行测试时,SetUp 方法失败

    我通过 nunit 在本地成功运行测试 但是 当我尝试通过 teamcity 运行它们时 一些测试通过了 但有些测试失败 并出现以下错误 设置方法失败 System Runtime InteropServices COMException
  • 如何为函数创建 Moq 模拟

    我有以下 Func 方法 我需要模拟它 Func
  • 获取 Html.TextBoxFor 字段的 HTML id

    有没有办法在 Javascript 中获取 ASP NET MVC 控件生成的客户端 ID Html TextBoxFor m gt m Name 像这样 Html IdFor m gt m Name
  • 当 TestCase 包含数组时,NUnit 无法识别该 TestCase

    这是我在 NUnit 中遇到的非常简单但烦人的行为 我有一些这样的测试 Test TestCase 1 2 hello TestCase 3 5 goodbye public void MyClass MyMethod int a int
  • MOQ'ing 方法调用顺序

    我正在模拟我们用于某些企业库调用的包装器 世界上一切都很好 我的测试通过了 实际的代码工作了 不过 我随后扩展了功能 并验证了所有测试仍然通过 宾果游戏 他们做到了 然而他们在现实世界中并没有这样做 因为人们期望 InitialiseDBC
  • 起订量要求?违背了目的?

    是否需要虚拟化您想要模拟的所有属性访问器就违背了模拟的目的 我的意思是 如果我必须修改我的对象并虚拟化我想要模拟的每个访问器 我难道不能继承我的类并自己模拟它吗 你的问题非常有效 但如果你仔细想想 没有其他方法可以模拟课程 如果你采用一个接
  • ASP.NET MVC - 授权属性登录重定向后保留 POST 数据

    我有一个带有评论的博客文章页面 任何用户 无论是否登录 都可以在页面底部看到一个表单来发表评论 当用户输入评论且未获得授权时 用户将被重定向到登录 注册页面 登录后 用户将被重定向回操作 但包含评论正文的 POST 数据会丢失 我使用 AS
  • MVC3 中的 ModelState.IsValid 与 IValidatableObject

    所以根据Gu http weblogs asp net scottgu archive 2010 07 27 introducing asp net mvc 3 preview 1 aspx IValidatableObject Valid
  • 从 MVC 视图中的模型访问 displayName 属性

    如果我的模型有 DisplayName First Name public string firstName get set 然后我可以用 LabelFor 在视图中打印它 Html LabelFor model gt model acc
  • 果园:自定义注册字段

    对于我的 Orchard 项目 我需要用户在注册时提供一些附加信息 说 名字 姓氏 裤子颜色 此信息必须在注册时输入 并且不能推迟到以后 根据客户的订单 我尝试使用配置文件和扩展注册插件来请求这些 但据我所知 这只为我提供了在注册表中显示的
  • Ajax.BeginForm 无法与 Html.ValidationSummary 一起使用

    我正在尝试使用 Ajax BeginForm 将数据发布到控制器 如果出现特定错误 表单应重新呈现并显示添加到 ModelState 的自定义错误消息 由于某种原因 错误消息未显示 我什至正在尝试以下不起作用的测试用例 我是否遗漏了什么 E
  • ASP.NET MVC 3 Razor DisplayFor 委托

    我收到此错误 模板只能与字段访问 属性访问 一维数组索引或单参数自定义索引器表达式一起使用 这是我的代码 自定义 HTML 帮助程序 包装 DisplayFor 以便我可以选择模板 public static string DisplayL
  • ASP.NET MVC 3,如何正确制作主题

    我正在寻找有关如何以最佳方式在 MVC 3 中实现 主题 的输入 我想需要一个自定义视图引擎来负责定位视图文件等 我还希望主题系统是可扩展的 这样 如果它只是其中一个视图 我想更改其他视图 但仍使用默认值 有点像 Orchard 项目吗 想
  • WebService ASP.NET MVC 3 发送和接收

    这几天我一直在绞尽脑汁思考如何满足新的要求 我有两个网站 第一个让用户填写申请表 第二个网站是用于管理用户应用程序的内部网站 我需要开发一个 Web 服务 将应用程序数据从网站 1 发送到网站 2 并向网站 2 返回成功或失败的响应 我以前

随机推荐

  • ember.js 所有值的观察者

    在 Ember js 中 是否有一种好方法添加观察者来观察子类实例上的所有更改Ember Object ie 咖啡脚本 Bat Ember Object extend name null age null hank Bat create n
  • Adobe Flex:无法将 XMLList 转换为 mx.collections.IList

    我的 Flex 应用程序运行一个 php 页面的服务 该页面从我的数据库中提取数据 然后以 XML 格式构建结果 我创建了一个名为的新 XMLListtestList在任何函数之外 然后当结果返回时 它们首先作为包含所有 XML 代码的单个
  • Java内存泄漏

    有人使用Eclipse内存管理器来检测java代码中的内存泄漏吗 有人可以推荐一个查找有关使用内存管理器的信息的好地方吗 我在网上读到一些内容 它建议我需要让程序运行直到崩溃 发生内存不足错误 这将生成崩溃报告 然后使用内存管理器打开这个报
  • 如何在 cx_freeze msi 捆绑包中设置快捷方式工作目录?

    我正在开发一个处理 SQLite3 数据库的 Python 程序 我使用 cx Freeze 将其制作为 MSI 安装文件 由 cx Freeze 生成的 msi 安装文件生成的 Windows 快捷方式不提供快捷方式的工作目录属性 因此
  • 与 IOS 深层链接混淆

    我只是想问这里是否有人知道为 IOS 应用程序创建深层链接的逐步过程 我尝试阅读一些文章 但它没有给我绝对的答案 谢谢 深层链接基本上只是设置应用程序的 url 以便其他应用程序可以使用信息启动它 如果您进行设置以便您的应用程序对某些 UR
  • 从 pandas 数据框中选择特定行

    我只想知道 pandas 中是否有任何函数可以根据数据帧中的索引选择特定行 而无需编写自己的函数 例如 从大型数据框中选择索引为 15 50 的行 我已经写了这个函数 但我想知道是否有快捷方式 def split concat data f
  • 如何将 uint8 转换为字符串

    我想转换uint8串起来 但不知道如何串起来 package main import fmt import strconv func main str Hello fmt Println str 1 101 fmt Println strc
  • R data.table:对文件夹中的所有 .csv 文件使用 fread 跳过每个文件的最后一行

    我有数百个 csv 文件需要使用 fread 读取并保存为一个数据表 每个 csv 的基本结构都是相同的 有需要跳过的标头信息 使用skip 很容易 我很难跳过每个 csv 文件的最后一行 每个 csv 文件都有不同的行数 如果我在 Tes
  • 结合 Interlocked.Increment 和 Interlocked.Exchange

    我希望以原子方式递增静态变量 并同时以无锁方式将新值分配给实例字段 目标是让每个对象在创建时获得唯一的 递增的 id 这样两个对象就不可能获得相同的 id 下面的代码能实现这个目的吗 class MyClass private static
  • 在 Windows 服务中使用 SHFileOperation

    这是可能的 但是在 Windows 服务中使用 SHFileOperation 是否合适 shell32 dll 中的所有这些 SHxxx API 函数似乎都是根据用户级程序编写的 我可以确定 SHFileOperation 永远不会显示
  • DirectoryInfo 对象的 Length 属性

    K test 中存在空目录 New Folder gt a gci K test目录不应具有 Length 属性 让我们检查 bool a PSobject Properties Name match Length False 是的 没有
  • 访问 1x1 matlab 单元格的内容

    我不确定术语 但我已将数据从文本文件读取到 1x1 元胞数组中P 检查时P 它在 1 1 位置列出 从那里我可以双击它 它会打开我真正想要的 142x2 单元格 问题是 我不知道如何通过代码操作这些数据以将 1x1 元胞数组转换为 142x
  • Rails:多步表单上的动态选择不保持选择

    我正在按照瑞安 贝茨 Ryan Bates 的要求 为订单下达流程制定多步骤表单多步骤教程 217它使用会话 第一步 我有两个选择字段 一个用于国家 陆地 一个动态用于运输服务 选择土地后 运输服务将通过 javascript jQuery
  • 程序类型已存在:org.apache.http.auth.AuthSchemeFactory

    I used Picasso作为我的应用程序项目和聊天库的依赖项 这是我在编译代码时遇到的错误 程序类型已存在 org apache http auth AuthSchemeFactory 消息 种类 错误 文本 程序类型已存在 org a
  • 从 ggplot 检索颜色 - 值映射

    我假设 ggplot 尺度创建了某种函数来读取适当的aes值并返回colour size等等 这可以用作独立功能吗 例如 对于这个函数 我将传递必要的参数 range limits high low等 和我想要获取映射的值 函数的输出将是c
  • 如何使用 useState 挂钩在 forEach 循环中设置状态

    我想将数组 A 中的数据传输到对象 B 中 所以我做了类似 array forEach e gt setB B e 的操作 但似乎在遍历后面的元素时 以前的行动已经被 遗忘 了 我该如何实现我的目标呢 原型应该是这样的 import Rea
  • Java无法解析的日期SimpleDateFormat [重复]

    这个问题在这里已经有答案了 我有一个看起来像这样的约会 Sun Dec 29 00 24 09 CET 2019 我有一个小实用方法 可以将字符串日期从一种格式解析为另一种格式 public String formatDate String
  • Ipython bash/shell 单元魔法:我可以在单元之间拥有持久变量吗?

    这是我在 SO 上的第一篇文章 所以请告诉我我是否做错了什么 我对在 ipython 中使用不同的编程语言感兴趣 类似于 emacs org 模式下的 babel literal 编程 我喜欢 emacs org 模式的一点是 可以有多个
  • 我可以将图像作为文件而不是 data:url 存储在 Firebase 上吗?

    我想将图像存储在 firebase 上并想在某个地方使用它 我经历了这个帖子并尝试过这个演示 它将图像存储为 data url 格式 但我想将图像上传并存储为物理文件 以便我可以进一步使用它 例如这个网址http example com s
  • MvcMailer:无法在使用 Url.Action 的 Razor 视图上完成 NUnit 测试

    这是我的问题 我正在使用Mvc邮件程序使用 Razor 语法创建格式良好的电子邮件 它是一个很棒的工具 我遇到的问题是这样的 这是我发送的一封电子邮件的视图中的一些语法 p Click here to return to a href Ur