如何使用最小起订量模拟控制器上下文

2023-11-24

我正在尝试最小起订量框架,但现在我遇到了障碍。以下单元测试失败,因为 ViewName 属性的实际值是空字符串。

有人能指出我正确的方向吗?为什么这没有通过测试?

[TestMethod]
public void Can_Navigate_To_About_Page()
{
    var request = new Mock<HttpRequestBase>();
    request.Setup(r => r.HttpMethod).Returns("GET");
    var mockHttpContext = new Mock<HttpContextBase>();
    mockHttpContext.Setup(c => c.Request).Returns(request.Object);

    var controllerContext = new ControllerContext(mockHttpContext.Object, 
                                new RouteData(), 
                                new Mock<ControllerBase>().Object);
    var controller = new HomeController();

    controller.ControllerContext = controllerContext;
    var result = controller.About() as ViewResult;

    Assert.AreEqual("About", result.ViewName);
}

以下还会产生一个空的 ViewName。

        HomeController controller = new HomeController();
        ViewResult result = controller.About() as ViewResult;
        Assert.IsNotNull(result);
        Assert.AreEqual("About", result.ViewName);

从网络上演示模拟和良好 TTD 的示例中,我只是对需要哪些其他管道才能使上述第一个单元测试示例正常工作感到困惑。

Cheers,

Andrew


测试失败的原因是,当您没有明确指定 ViewName 时,决定 ViewName 的因素是在框架的深处。更准确地说,我相信在视图引擎中。因此,要按目前的情况进行测试,您必须模拟更多的请求管道。

我所做的并且建议不要依赖默认值并明确指定视图:

return View("About");

然后该值将在那里进行测试而无需模拟任何内容:

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

如何使用最小起订量模拟控制器上下文 的相关文章

  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 表单身份验证 MVC4

    我正在尝试使用 MVC4 网站进行简单的表单身份验证设置 在App start FilterConfig cs中 public static void RegisterGlobalFilters GlobalFilterCollection
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 重载<<的返回值

    include
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现

随机推荐

  • 如何尝试捕获未找到的程序集

    好的 假设我有一个这样的应用程序 using System using AliensExist some DLL which can t be found 我想要的是 如果找不到程序集 DLL AlienExist 应用程序不会返回错误 而
  • 有趣的NLP/机器学习风格项目——分析隐私政策

    我想就分配给我的一个有趣问题提供一些意见 任务是分析数百个甚至数千个隐私政策并确定它们的核心特征 例如 他们是否获取用户的位置 他们是否与第三方共享 出售 等等 我和一些人交谈过 阅读了很多有关隐私政策的内容 并且自己也思考过这个问题 这是
  • 我将如何格式化 Zend_Form_Element_Radio 以便标签跟随输入?

    Zend Form Element Radio 的默认装饰器是
  • 我的自定义 selinux 策略似乎被 Android 系统忽略

    我在基于 AOSP 的 Android 7 1 2 更准确地说是基于索尼开放设备树 上正确运行自定义 selinux 策略时遇到了一些麻烦 我的问题是审核日志不断告诉我缺少我实际添加的文件访问规则 我还将audit2allow 创建的规则复
  • 查找Excel中的重复行

    我有一个包含两行的 Excel 电子表格 一个是 name 另一个是 id 有什么方法可以找到具有完全相同 id 的行并让我轻松查看这些行吗 例如我有以下行 Name Id Hello 1 World 5 Mylo 1 Jack 6 Jil
  • VBA中日期之间的SQL查询

    我在使用 Excel 和 Access 数据库在 VBA 中进行 sql 查询时遇到问题 在 mi VBA 代码中 我有两个包含以下内容的数据变量 日期最小值 31 07 2014 22 00 00 最大日期 01 08 2014 06 0
  • SwiftUI 拖放重新排序 - 检测对象释放

    我实现了一个简单的拖放来重新排序 VStack Scrollview 中的项目 根据这个解决方案 我将当前拖动的项目存储在名为的属性中draggingItem并将不透明度设置为 0 具体取决于它是否为零 当 DropDelegate 中的
  • 返回序列中的第 N 个斐波那契数?

    我的课堂作业有一个问题 我需要知道如何使用迭代返回第 n 个斐波那契数列 不允许递归 我需要一些关于如何执行此操作的提示 以便我可以更好地了解我做错了什么 我在我的program cs中输出到控制台 因此它在下面的代码中不存在 Q1 Ret
  • 在 Python 中复制数组/列表的有效方法

    注意 我是一名 Ruby 开发人员 正在尝试在 Python 中找到自己的出路 当我想弄清楚为什么有些脚本使用mylist 代替list mylist 为了复制列表 我对各种复制方法做了一个快速基准测试range 10 参见下面的代码 ED
  • 是否可以在运行时隐藏 highcharts 中的导航器?

    我正在开发一个 highcharts 项目 我们需要在运行时显示 隐藏导航器 具体取决于屏幕过滤器的值 我们已经添加 显示 隐藏各种数据系列 但我找不到允许我在运行时动态隐藏导航器的 API 调用 有谁知道如何做到这一点 除非必须 否则我不
  • 如何在行的滑动操作配置中添加 VoiceOver 的辅助功能标签?

    我正在使用 Swift 4 创建一个 iOS 应用程序 但没有使用 Storyboard 要从表视图控制器中删除行 用户向左滑动该行 然后单击 删除 按钮 这是我用来实现该功能的代码 未使用外部库 override func tableVi
  • 是否有针对 Python、Ruby、Sql、Cobol、Perl 和 PL/SQL 的静态分析工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找一个针对 Pyt
  • SQL 选择案例

    我有以下sql表 oitems table orderid catalogid numitems O737 353 1 O738 364 4 O739 353 3 O740 364 6 O741 882 2 O742
  • 使用rackup时找不到Sinatra静态资源

    我有一个简单的 Sinatra 应用程序 它是使用模块化样式配置的 当我使用启动应用程序时rackup p 4567根据自述文件中的建议 不提供公共文件夹中的静态资源 但是当我开始使用时shotgun config ru p 4567然后他
  • 获取图像大小而不加载到内存

    我有一些 png图片 ETA 但格式也可以是 JPEG 或其他格式 我将在其中显示UITableViewCells 现在 为了获得行高 我加载图像 获取它们size属性 并使用它来计算行的高度 计算沿途任何必要的更改 因为大多数图像在显示之
  • 为什么渐变不覆盖视图的整个宽度

    我正在尝试将渐变应用于限制在主屏幕的顶部 左侧和右侧的视图 但由于某种原因 渐变没有覆盖所应用视图的整个宽度 请参见中的黄色 图片 class ViewController UIViewController IBOutlet weak va
  • C++编译器会优化掉未使用的返回值吗?

    如果我有一个返回对象的函数 但调用者从未使用此返回值 编译器会优化掉副本吗 可能是总是 有时 从不的答案 基本示例 ReturnValue MyClass FunctionThatAltersMembersAndNeverFails Do
  • 使用文本框和自定义词典进行拼写会减慢我在 C# WPF 中的应用程序的速度

    我在 WinForm 应用程序中使用 WPF 文本框进行拼写检查 每次创建一个文件时 我都会将相同的文件作为 CustomDictionary 加载 直到最近一切都很好 现在 它们需要很长时间才能加载 最多一秒钟 有些表格有 30 个或更多
  • 如何强制 Facebook JS-SDK 渲染动态添加的小部件?

    应用程序内的内容正在使用 XHR 进行更新 这涉及到更改评论框的 URL div class fb comments div 页面完全加载后创建新的 Facebook 小部件占位符时 如何请求 Facebook JS SDK 在页面上呈现新
  • 如何使用最小起订量模拟控制器上下文

    我正在尝试最小起订量框架 但现在我遇到了障碍 以下单元测试失败 因为 ViewName 属性的实际值是空字符串 有人能指出我正确的方向吗 为什么这没有通过测试 TestMethod public void Can Navigate To A