gpt4 book ai didi

asp.net-mvc - 真的有必要测试 Controller 方法吗?

转载 作者:行者123 更新时间:2023-12-01 10:05:53 25 4
gpt4 key购买 nike

当我设计 MVC 应用程序时,我通常会尝试(尽可能多地)将几乎所有逻辑保留在我的应用程序之外。我尝试将其抽象为与我的存储库和域实体接口(interface)的服务层。

所以,我的 Controller 方法最终看起来像这样:

public ActionResult Index(int id)
{
return View(Mapper.Map<User, UserModel>(_userService.GetUser(id)));
}

所以假设我对我的服务进行了良好的覆盖率测试,并且我的操作方法像上面的示例一样简单,那么对这些 Controller 方法进行单元测试是否有点过分了?

如果您为看起来像这样的方法构建单元测试,您从测试中获得什么值(value)?

最佳答案

If you do build unit tests for methods that look like this, what value are you getting from your tests?

您可以进行断言的单元测试:

  1. 调用了 _userService 的 GetUser 方法,传递了传递给 Controller ​​的相同 int。
  2. 返回的结果是 ViewResult,而不是 PartialViewResult 或其他东西。
  3. 结果的模型是 UserModel 实例,而不是 User 实例(这是从服务返回的)。

单元测试与断言应用程序的正确性一样有助于重构。帮助您确保即使在更改代码后结果也保持不变。

例如,假设您进行了更改,当请求为异步/ajax 时,操作应返回 PartialView 或 JsonResult。在 Controller 中更改的代码不会太多,但是一旦更改代码,您的单元测试可能会失败,因为您很可能没有模拟 Controller 的上下文来指示请求是否为 ajax。因此,这会告诉您扩展单元测试以保持正确性断言。

对于 3 个非常简单的方法,IMO 绝对是增值的,每个方法的编写时间不会超过几分钟。

关于asp.net-mvc - 真的有必要测试 Controller 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com