单元测试 MVC 控制器

2024-03-12

我的 ASP.NET MVC 应用程序中的控制器根据几个相当简单的规则预先填充我的视图显示的表单数据。

在我的单元测试中涵盖这似乎是一件好事。但我能看到验证表单中是否放置了正确数据的唯一方法是以一种不自然的方式从控制器中提取逻辑。

有人可以提出解决这个问题的方法吗?

我发现的单元测试控制器的所有示例似乎都非常琐碎,例如验证它返回了预期的视图类型。我什至不确定我是否看到了其中的价值。


您可以通过将返回的对象强制转换为适当的类来进行测试,而不是使用它们的基类(默认情况下返回)

例如,测试默认的AccountController你会这样:

var controller = new AccountController();
var result = controller.LogOn() as ViewResult;
var model = result.Model as LogOnModel;

Assert.IsTrue(model.RememberMe); // assuming you "pre-populated" enabled the checkbox

检查返回的对象是否填充了正确的数据对我来说似乎并不“不自然”,还是您的意思不同?

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

单元测试 MVC 控制器 的相关文章

  • JQuery - 使用 JSON 的属性创建输入

    我正在尝试使用 JSON 设置的 id 和 value 属性创建一个输入 我有一个获取 JSON 的 ajax 调用 返回的数据很好 对于 JSON 中的每个对象 我想创建一个带有 ID 和 JSON 值的按钮 阿贾克斯调用 ajax ty
  • QUnit 不会运行测试

    我刚刚开始使用 QUnit 并遇到问题 我目前正在使用 TypeScript 它是一个 JavaScript 编译器 我在与我的主要课程结构平行的课程中进行测试 在每个类中 我都有一个名为 runTests 的函数 为了执行这些测试 我循环
  • 在unittest.main()之后执行命令

    我从另一个 Python 脚本调用以下脚本 测试 py 日志文件 它应该运行测试并将结果保存在日志文件中 但由于某种原因 之后的命令unittest main testRunner runner 没有被执行 我什至不确定文件写入后是否会关闭
  • Ajax.BeginForm 可以重定向到新页面并传递路由值

    此链接显示如何重定向 Ajax BeginForm 但不显示如何将路由值传递到新视图 可以重定向到新页面的 Ajax BeginForm https stackoverflow com questions 9391201 ajax begi
  • 单例可以促进遗留代码库中的单元测试。好主意好不好?

    各位 我有一个庞大的遗留 Net 代码库 并且我正在尝试向团队引入单元测试 他们是好人 但这对他们来说是全新的 老实说 这对我来说也是相当新的 问题之一是代码库大量使用 System IO 中的静态类 有大量的内部静态类库 并且类不会写入接
  • 实体类型 ApplicationUser 不是当前上下文模型的一部分。在项目开始时使用了两个不同的数据库

    我使用实体框架创建了一个 MVC 4 应用程序来读取数据并将数据写入我在 Azure 数据库上托管的数据库 Azure 数据库应该保存应用程序数据和应用程序的登录数据 但是 当我第一次创建应用程序时 我忘记删除到本地计算机的连接字符串 因此
  • ASP.NET MVC3:WebGrid + Ajax 过滤器 + Ajax 排序和分页

    基本上 我正在使用 WebGrid 并且需要过滤结果 我遇到的第一个问题是 这是我第一次使用 WebGrid 我希望你们中的一些人能够帮助我 到目前为止 我已经设法对网格结果进行排序并使用 Ajax 过滤它们 但是 当重新排序过滤后的结果
  • 每 4 个循环新表行

    如何在 Razor 视图中每 4 个循环创建一个新表行 这是为 4 之前的每个数字创建一个新行 然后停止创建新行 int i 0 foreach var item in ViewBag ProgramIdList if i 4 0 tr t
  • 如何在ListBox中加载大量数据? ASP.NET MVC 应用程序

    我正在使用 ASP NET MVC 应用程序 要求用户能够从可能包含超过 30 000 个条目的列表框中选择一个项目 是否有一种使用 Ajax 调用来填充此 ListBox 内容的动态方法 效果良好 我是否最好只填充服务器上的 ListBo
  • ASP.net MVC 项目无法在 IIS 上编译

    我以前只是将 ASP NET 网站上传到实时服务器 IIS 会自动编译它们 但是 当我对 asp net MVC 项目执行相同操作时 我只是收到错误 并且我需要在上传项目之前发布 构建 项目 注意1 我使用的是VWD 2008 Expres
  • 显示 PDF ASP.Net MVC

    我的桌面上有一个文件用于测试 我试图在如下视图中显示它 ViewBag Title ShowFile h2 ShowFile h2 我用于控制器的代码是 HttpGet public ActionResult ShowFile string
  • 具有实体框架的 MVC 控制器的 T4 模板 - 主机的成员属性 (MvcTextTemplateHost)?

    有谁有我可以在 MVC 3 附带的 T4 模板 ControllerWithContext tt 中使用的 Host 对象成员的完整引用吗 我已经尝试了我能想到的所有谷歌搜索 但唯一相关的结果是这个页面 http blogs msdn co
  • PostAsync 方法的 HttpClient 错误

    使用 HttpClient 对第 3 方 API 进行 PostAsync 调用时 当我执行 client PostAsync 时 我正好看到此错误 知道是什么原因造成的吗 Code public class JobController A
  • 如何将 Orchard CMS 与当前的 MVC2 应用程序集成?

    对于我的项目 客户端有一个现有的 ASP NET MVC 2 Web 应用程序 该应用程序具有产品目录和购物车功能 客户正在重新设计他们的网站 并希望使用 Orchard 来维护他们的内容页面 例如主页 关于 服务等 他们希望尽可能多地使用
  • 如何运行传递给模拟方法的 lambda 函数?

    我想知道是否可以运行作为参数传递给模拟函数的 lambda 函数 并在调用模拟方法时运行它 我正在使用 Mockk 我想象代码是这样的 class DataManager fun submit lambda Int gt Unit val
  • 将多个对象传递给我的控制器

    我将一个对象传递给我的控制器 如下所示 var form JSON stringify subRevisedRequest frmRevised val subSubcontractor frmSubcontractor val subDe
  • MVC 项目中的 .Rdlc 报告 - 托管调试助手“PInvokeStackImbalance”

    我即将完成并运行我的上一份报告 我在其他报告中没有遇到过这个问题 我正在尝试根据数据库记录创建报告 当我通过 LocalReport 创建报告并为报告创建参数时 收到错误消息 托管调试助手 PInvokeStackImbalance 调用
  • Akka.net 和单元测试

    我想使用 Akka net TestKit 编写单元测试 但我有一个问题 我有一个 SubscriptionService 类 它负责将消息传输给选定的参与者 public class SubscriptionService Receive
  • IsReusable 属性中的上下文切换

    是否可重用属性 下面是我的理解IsReusable财产 如果处理程序返回静态内容 将值设置为 true 是安全的 但如果线程返回动态内容 为了使其线程安全 IsReusable应设置为 false 在这种情况下 可能会发生上下文切换 这可能
  • 测试弱引用

    在 Java 中测试弱引用的正确方法是什么 我最初的想法是执行以下操作 public class WeakReferenceTest public class Target private String value public Targe

随机推荐

  • 我对并发 MySQL 连接感到困惑

    所以 我读了一本关于Mysql的书 它说可以访问数据库的并发用户数是有限制的 这是否意味着如果我有 20k 用户同时浏览我的 Web 应用程序 我的 Web 应用程序将无法加载数据库中的数据 因为每次我的网站加载时 我的网络应用程序都会访问
  • FutureWarning:如果 dtype='numeric',则字节/字符串数组将转换为十进制数字

    FutureWarning Arrays of bytes strings is being converted to decimal numbers if dtype numeric This behavior is deprecated
  • 截断内存映射文件

    我正在对索引文件使用内存映射 IO 但问题是如果文件大部分为空 我无法调整文件大小 之前的某个地方 MappedByteBuffer map raf getChannel map MapMode READ WRITE 0 1 lt lt 3
  • 使用 BeautifulSoup python 3.6 抓取数据时网页值丢失

    我正在使用下面的脚本来删除 股票报价 数据http fortune com fortune500 xcel energy http fortune com fortune500 xcel energy 但其给出空白 我也使用过硒驱动程序 但
  • 从十六进制 istream 中读取双精度值

    Given double foo我可以使用十六进制格式字符串分配它sscanf像这样 sscanf 0XD lg foo 但我似乎无法得到istringstream以同样的方式行事 所有这些都只需写入 0 即可foo istringstre
  • 哈斯克尔范围 (GHCi)

    我正在阅读为你学习 Haskell 以造福人类 http learnyouahaskell com 他的例子 http learnyouahaskell com starting out texas ranges 2 2 20 and 3
  • 逻辑或在doctrine2 getRepository->findBy()

    如何像doctrine2中那样编写查询 SELECT from table where field value1 or field value2 我发现了类似的东西 em gt getRepository myentitity gt fin
  • 从 Selenium WebDriver 中的 WebElement 获取 CSS 选择器字符串 - Java

    我有一个 WebElement 我只是想提取 CSS 选择器字符串 这是我调试代码时变量的值 ChromeDriver MAC 上的 chrome 345345345n5435345b34 gt css 选择器 div class 警报警报
  • UICollectionView 自动调整大小和动态行数

    我正在尝试做这样的事情 Basically I am using a UICollectionView and the cells 3 diferent xib 到目前为止 它有效 我想做的事情是 Set a autoheight 如果旋转
  • 使用c#泛型继承,而类类型是继承的

    在 C 中可能有这样的事情吗 假设我有这个 public class T U 我想要这个 public class A
  • scipy linregress 函数错误的标准错误返回?

    我遇到了一个奇怪的情况 scipy stats linregress 似乎返回了不正确的标准错误 from scipy import stats x 5 05 6 75 3 21 2 66 y 1 65 26 5 5 93 7 96 gra
  • mergeMap 和 mergeMapTo 有什么区别?

    在 rxjs5 文档中 它提到 为了减少多态性并从运算符中获得更好的性能 一些运算符已被拆分为多个运算符 它的实际含义是什么以及如何使用 mergeMapTo 运算符 来自docs http reactivex io rxjs class
  • 如何更改 Rust 字符串中特定索引处的字符?

    我正在尝试更改字符串中特定索引处的单个字符 但我不知道如何更改 例如 我如何将 hello world 中的第四个字符更改为 x 以便它成为 helxo world 最简单的方法是使用replace range https doc rust
  • 让模型监听嵌套模型和集合的最佳模式?

    使用 Backbone js 让模型监听所有嵌套模型和集合的最佳模式是什么 我应该将嵌套模型 集合放入属性中吗 我应该手动创建亲子关系并触发事件吗 与 Backbone js 的大多数事情一样 您不会得到 正确 的答案 但我可以分享我是如何
  • 在一定规则下动态创建数组

    我需要创建具有遵循这些模式的某些值 属性的数组 不幸的是 我的数学知识不允许我找到规律 以下是应在 从下到上 n 1 2 和 3 处输出的数组示例 计算每条边上的红色框 所有红色和绿色方块都应该分配一些值 而所有白色方块都需要未定义 或空
  • 参数里面的冒号是什么意思? [复制]

    这个问题在这里已经有答案了 words pron dict str 上的冒号是什么意思 我在 python 2 7 上遇到语法错误 是Python 3吗 我该如何使用它 class TextToSpeech CHUNK 1024 def i
  • DDD 中哪一层应该包含查询

    我有一个简单的 DDD 服务 带有文章聚合根 我使用 MediatR 和 CQRS 来分离命令和查询 在 DDD 域中不应依赖于应用程序和基础设施层 我有一个存储库 IArticleRepository 用于从文章数据库中组合一些数据 我有
  • 显示字符串的可能组合

    我试图获取一个字符串并显示它的可能组合 在 PHP 中 但同时按每个单词的顺序说出 例如 你好吗 将返回 一个数组 How are you How are are you how you are 我现在的代码显示了所有组合 但我希望它保持它
  • OnLoad方法和Load事件之间的区别?

    有什么区别OnLoad方法和Load事件 我正在开发 WinForm 控件 我应该注册到Load事件或覆盖OnLoad方法 每一种的优点和缺点是什么 我会去覆盖OnLoad 这样您就可以节省 CPU 周期来调用事件处理程序 如果您从控件继承
  • 单元测试 MVC 控制器

    我的 ASP NET MVC 应用程序中的控制器根据几个相当简单的规则预先填充我的视图显示的表单数据 在我的单元测试中涵盖这似乎是一件好事 但我能看到验证表单中是否放置了正确数据的唯一方法是以一种不自然的方式从控制器中提取逻辑 有人可以提出