单元测试 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 控制器 的相关文章

  • 如何使用 Asp.Net MVC 3 和 Razor 获得特定于视图的 内容?

    除了 Layout cshtml 中已链接的内容之外 我还想在某些视图中链接特定的样式表 对于非 Razor 我看到使用内容占位符 我该如何为 Razor 执行此操作 Razor 中的内容占位符相当于部分 在你的 Layout cshtml
  • 在什么情况下会在快速测试中使用expectationForNotification

    我有点困惑什么 什么时候做expectationForNotification as opposed to期望与描述 我无法在 swift 中找到任何明确的示例来说明您何时以及如何处理此调用 我假设它可能是为了测试通知 但看起来它可能只是整
  • 单元测试 python 代码,其中 configparser 从配置文件中读取

    我是 python 单元测试的新手 我学习并进行了示例单元测试 其中方法接受输入并返回输出 但对于下面提到的代码 我有一些疑问 如何在unittest中模拟init方法的configparser 路径 config program cfg
  • MSTest:如何增加测试时间

    我有一个测试需要运行超过 1 分钟 VS2008 MSTest 测试是从 VisualStudio 启动的 const int TestTimeout 1 TestMethod Timeout 10 60 1000 10 minutes p
  • Angular 2 测试 - 获取 DOM 元素样式

    我想在 Angular 2 应用程序中测试隐藏显示按钮的功能 测试是用 Jasmine 编写的 所以我需要检查display相关元素的属性 我怎样才能使用 Angular 获得这个属性debugElement 测试代码 let input
  • Xcode 不再识别测试

    我已经解决这个问题几天了 但我没有任何想法 我在 Xcode 中使用单元测试 效果很好 突然 Xcode 不再识别我的测试 如果我进入测试面板 它会显示我的测试为零 我其实有13个 运行单独测试或某些课程的能力现已消失 它不会在编辑器区域的
  • 在asp.net mvc 3项目中渲染部分视图onclick

    在我的 mvc 项目中 我有一个简单的项目列表 其中包含如下的增删改查操作 tbody foreach var item in Model tr td item Title td td item Body td td item Price
  • 使模型绑定适用于没有默认构造函数的模型

    我一直在试图找到一种方法 让模型绑定与带有参数的构造函数的模型一起进行 那个行动 HttpPost public ActionResult Create Company company HttpPostedFileBase logo com
  • ViewStart 和 Layout - 有什么区别?

    我刚刚开始阅读 ASP NET MVC 4 这本书并遇到一个问题 在 Razor 部分作者说 如果我不在 View cshtml 文件中设置布局变量 它将默认搜索 ViewStart cshtml 但在另一部分中 他在 Views Shar
  • 如何将 JUnit 5 与 Gradle 结合使用?

    在成功运行 JUnit 4 测试后 我尝试将 JUnit 5 与 Gradle 一起使用 预期结果 JUnit 4 测试在输出中给出了很好的 通过 结果 并在build reports tests 实际结果 下面的 JUnit 5 测试不输
  • 返回没有属性名称的 Json 结果

    很可能是一个相当微不足道的问题 但我就是找不到合适的答案 我想返回一个 JsonResult 但实际结果没有任何属性名称 这是我想要实现的一个小例子 xbox Xbox 360 Xbox cheats Xbox 360 games The
  • 如何在 MVC 5 中设置自定义 ClaimsPrincipal?

    我创建了一个自定义主体类 public class FacebookPrincipal ClaimsPrincipal public JObject Data get set 我想用它 当用户登录时 我尝试设置 var fbP new Fa
  • 在 Eclipse Testrunner 中使用名称的 ParameterizedTest

    当您使用 Eclipse TestRunner 运行 JUnit 4 ParameterizedTest 时 图形表示相当愚蠢 对于每个测试 您都有一个名为 0 1 ETC 是否可以进行测试 0 1 等显式名称 实施一个toString测试
  • 对需要发送标头的项目进行单元测试

    我目前正在与 PHPUnit 合作 尝试在我正在编写的内容的同时开发测试 但是 我目前正在编写会话管理器 并且在这样做时遇到了问题 Session 处理类的构造函数是 private function construct if header
  • MOQ'ing 方法调用顺序

    我正在模拟我们用于某些企业库调用的包装器 世界上一切都很好 我的测试通过了 实际的代码工作了 不过 我随后扩展了功能 并验证了所有测试仍然通过 宾果游戏 他们做到了 然而他们在现实世界中并没有这样做 因为人们期望 InitialiseDBC
  • 测试驱动开发 - 我应该测试数据库列和索引吗?

    我是 TDD 新手 我发现shouldagem 能够测试数据库实体的列是否存在以及测试其索引 但是否有必要在我的测试套件中包含列和索引的测试 我是否需要担心在开发过程中可能会删除任何列和索引 不要测试数据库列 这只是测试实施 不要测试实现
  • mvc3,你能给控制器一个显示名称吗?

    我用的是mvc3 是否可以为控制器和操作指定显示名称 DisplayName Facebook Employee public class EmployeeController Controller 在我的面包屑中 我将获得控制器名称和操作
  • jquery/javascript 处理后移至命名锚点

    在进行一些 jquery 处理后 如何将焦点移动到同一页面上的不同部分 名为锚点 函数 ABC 进行一些处理 然后 我需要将用户移动到同一页面上的某个部分 页面下方 您可以使用下面的代码将屏幕滚动到 div 只需更改选择器以匹配您要滚动到的
  • 避免 AngularJS 部分视图在 IE 中缓存

    我正在开发一个 ASP NET MVC 应用程序 它也有一些 angularJS 我有一个主页 其中有不同的选项卡 当您单击它们时 它们会加载角度部分视图 主页是这样的 div class widget div div class widg
  • 为什么 Visual Studio 不移动发布中的某些文件?

    当我尝试发布项目时 Visual Studio 不会将某些文件移动到目标发布文件夹 目前我有这个问题 json文件 我正在使用 Visual Studio 2010 和 MVC4 是否有关于应发布哪些文件或 mime 类型并将其移动到目标文

随机推荐

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