当我设计MVC应用程序时,我通常尝试将几乎所有逻辑(尽可能多)保留在我的应用程序之外。我尝试将其抽象为一个与我的存储库和域实体接口的服务层。
所以,我的控制器方法最终看起来像这样:
public ActionResult Index(int id)
{
return View(Mapper.Map<User, UserModel>(_userService.GetUser(id)));
}
因此,假设我的测试服务覆盖率很好,而且我的操作方法很简单,就像上面的例子一样,单元测试这些控制器方法是否过度了?
如果你为这样的方法构建单元测试,你从测试中获得了什么价值?
答案 0 :(得分:7)
如果你为看起来像这样的方法构建单元测试,那么值是多少 你从测试中得到了什么?
您可以使用断言的单元测试:
单元测试在重构方面同样有助于断言应用程序的正确性。即使您更改了代码,也可以帮助您确保结果保持不变。
例如,假设您有一个更改,当请求是async / ajax时,操作应返回PartialView或JsonResult。在控制器中进行更改的代码不会太多,但是一旦更改代码,单元测试可能会失败,因为您可能没有模拟控制器的上下文来指示请求是否为ajax。因此,这会告诉您扩展单元测试以维护正确性的断言。
对于3种非常简单的方法绝对是增值IMO,每次写入时间不应超过几分钟。