【发布时间】:2014-11-23 22:55:30
【问题描述】:
我有一个非常常见的场景,它涉及两个同名的操作方法 - 一个用于处理 POST 请求,另一个用于处理 GET 请求:
public ActionResult Add()
{
return View();
}
[HttpPost]
public ActionResult Add(Question question)
{
repository.Add(question);
return RedirectToAction("Index");
}
如您所见,动作方法通过属性来区分。如果我删除 HttpPost 属性,运行时将崩溃并出现黄屏死机。
我的问题是:编写一个使用反射来验证这个特定方法是否用HttpPost 属性修饰的单元测试是否明智?我倾向于这样做,因为如果有人不小心删除了该属性,服务器就会崩溃。
【问题讨论】:
-
添加单元测试不会对您造成任何伤害,但如果您认为有人可能会删除
HttpPost属性,您可能应该与他们谈谈。 -
@Jonesy 好吧,我单独编码,但你的评论确实引起了我的共鸣。
-
如果您为所有可能出错的事情添加测试,您将花费大量时间编写测试......如果您对此感到满意,那么无论如何...... . 但是,您通常必须自己决定测试的最佳价值所在。
标签: c# asp.net-mvc unit-testing tdd