C# ASP.NET MVC 控制器单元测试

2024-01-01

我对单元测试有点陌生,我想知道我这样做是否正确。

//Controller
public ActionResult Index()
{
    return View("../Message/Index");
}

[TestMethod]
public void MessageViewCorrectTest()
{
    var controller = new MessageController();
    var result = controller.Index() as ViewResult;
    Assert.AreEqual("../Message/Index", result.ViewName);
}

[TestMethod]
public void MessageViewInCorrectTest()
{
    var controller = new MessageController();
    var result = controller.Index() as ViewResult;
    Assert.AreNotEqual("Something/Else", result.ViewName);
}

我这样做对吗,有更好的方法还是这样好?

如有任何反馈,我们将不胜感激,提前致谢。


这是一种可以做到的方法。您还可以根据您的型号类型进行验证

[TestMethod]
public void TestMethod2()
{
  MessageController controller = new MessageController();
  ActionResult result = controller.Index(1);
  Assert.IsInstanceOfType(result, typeof(ViewResult));
  //Since view has been asserted as ViewResult
  ViewResult viewResult = result as ViewResult;  
  if(viewResult != null)
  {      
     Assert.IsInstanceOfType(viewResult.Model, typeof(YourModelType));
    //Further Asserts for your model 
  } 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# ASP.NET MVC 控制器单元测试 的相关文章

随机推荐

  • 计算 AP 的距离,包括信噪比

    出于某种原因 我和一个朋友正在讨论根据从设备获取的信息 RSSI 频率 SNR 等 计算您自己 笔记本电脑 手机等 与 AP 之间的距离 因此 在花了一些时间研究三边测量 三角测量和自由空间路径损耗之后 在一些博客文章和 wiki 的帮助下
  • bootstrap-affix :affix 下面的 Div“跳”到顶部。如何让它平滑地向后滚动?

    已经使用 bootstrap 几天了 并对它提供的功能感到惊讶 一直在尝试拥有某种 标题 当用户向下滚动时将其固定在顶部 您可以在这里找到我当前的工作 http mp3dj free fr affix site http mp3dj fre
  • 比较 SynchronizationContext

    如何比较 SynchronizationContext 看来同一个Dispatcher在使用BeginInvoke时可以创建不同的SynchronizationContext 当我深入研究两个 不相等的 上下文时 我发现调度程序线程 ID
  • 在记事本++中创建新快捷方式

    我正在尝试在记事本 中添加快捷方式或按钮来调用我当前正在编辑的文件上的外部程序 例如 假设我有程序 analyzer jar 我想在记事本 中创建一个按钮 或快捷方式 来直接运行命令 cmd K java jar analyzer jar
  • 在 AWS EC2 上添加新的 Spark 工作线程 - 访问错误

    我有现有的正在运行的 Spark 集群 它是通过以下方式启动的spark ec2脚本 我正在尝试按照说明添加新的从站 停止集群 在 AWS 控制台上 在其中一个从属设备上 启动更多这样的操作 启动集群 尽管新实例已添加到同一安全组 并且我可
  • Y 轴中带有长标签的 Recharts 水平条形图的动态高度

    如果 YAxis 中的标签太长 如何动态更改 Recharts 中的 ResponsiveContainer 的高度 这是我的代码
  • 错误:打开模拟器时,在 Windows 8 上找不到抛出的模拟器图像 (avds)

    我正在 ionic 框架中制作一个 cordova 应用程序 我想在模拟器 somfired 命令中测试它ionic emulate android它引发了以下错误 运行命令 ionic emulate android 时 Git Bash
  • ControlSend 使用 SetKeyDelay, 0, 0 时随机发送错误字符(修改和未修改)

    我正在自我回答这个问题 因为我在互联网上看到过这个问题 但几乎没有有用的答案 而且在 Stack Overflow 上也绝对找不到我能找到的解决方案 示例代码 考虑一下这段代码 它只写了几行 shell 命令 0 SetKeyDelay 0
  • 允许多个不同形状的接口作为 TypeScript 返回类型

    我有一个函数 它接受一些参数并生成将传递到外部进程的对象 由于我无法控制最终需要创建的形状 因此我必须能够为我的函数采用一些不同的参数并将它们组装成适当的对象 这是一个非常基本的示例 展示了我遇到的问题 interface T1A type
  • BuildHTTPClient 无法获取构建定义步骤?

    我们使用 BuildHTTPClient 以编程方式创建构建定义的副本 更新内存中的变量 然后将更新的对象保存为新定义 我在用着Microsoft TeamFoundation Build2 WebApi BuildHTTPClient h
  • 在android中显示栏之间的空格

    如何在android中提及条形图的条形之间的空格 Thanks in advance 上面的图片会让你清楚我的疑问 即 蓝色条实际上不适合相应的 x 轴值 这里是 Ord 1 Ord 2 Ord 3 Ord 4 我需要显示这些带有 x 轴值
  • OpenCV 2.3 中的 VideoCapture 问题

    我使用时遇到问题视频截取用于打开 MPEG 视频文件的类 代码已正确编译 但是 在运行期间 它无法打开文件并给出以下警告消息 警告 打开文件时出错 modules highgui src cap ffmpeg impl hpp 477 仅当
  • 使用 JNI 从单独的线程调用静态 Java 方法

    我正在尝试在 android 中使用 JNI 来创建一个函数指针 我正在使用的本机库将其调用转发给 java When initializeStateController被调用 使用创建一个新线程pthread create每当状态控制器的
  • 使用 bash shell 脚本替换文件中的字符串

    我想在文件中找到一个字符串 进行一些操作并将该字符串放回文件中 下面给出的是我需要的示例 cat sample txt TimeStamp gt 123456 Name gt ABC Mail gt email protected cdn
  • 在makefile中写入依赖项,用makefile

    基于一些SO问题 以及发现的一些进一步的参考 我正在尝试构建一个能够 查找 给定目录 SRC the cpp待编译的文件 编译 cpp 生产 o物体 产生 so每个共享对象 o以前编译的 为了实现这一点 make 文件应该做的是 查找 给定
  • 解决方案。有代理时如何install_github

    当您尝试从 GitHub 存储库安装某些 R 包时 install github rWBclimate ropensci 如果您出现以下错误 Installing github repo s rWBclimate master from r
  • 从 mysql 网站检索时未选择数据库

    我有一个 mysql 数据库 我正在尝试从我们的网站主机 godaddy 检索该数据库 我遵循了一种似乎正确的格式 但它告诉我 java sql SQLException No database selected Code public s
  • 无缝循环音频 html5

    有人知道如何实现音频标签的无缝循环吗 我在想一些基于javascript的东西 我有一个循环 比如 1 小节 我希望它循环并保持节奏 所以我需要循环平滑 无间隙 当我简单地将 循环 设置为 true 时 它 会滞后并且不会保持节奏 虽然仍然
  • 在 JBoss Seam 上实现 SOAP Web 服务的最佳方法是什么?

    我需要在 Jboss Seam 2 1 0 上实现 SOAP Web 服务 这个想法是将无状态 bean 方法导出为 Web 服务 然而 我发现了两种方法 第一个是使用 Seam 自己的 Web 服务注释 这样做的问题是缺乏文档 第二个 是
  • C# ASP.NET MVC 控制器单元测试

    我对单元测试有点陌生 我想知道我这样做是否正确 Controller public ActionResult Index return View Message Index TestMethod public void MessageVie