【发布时间】:2009-01-06 21:40:21
【问题描述】:
我想知道利用模型绑定对控制器操作进行单元测试的最佳实践。
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult AddProduct(Product product)
{
}
我想知道您如何调用控制器的方法进行单元测试。如果你尝试这样的事情......
public void Catalog_AddProduct()
{
CatalogController controller = new CatalogController();
// some mocking for controller context, setting form values etc...
controller.AddProduct(// ?);
}
有些人可能会建议删除 Product 作为参数,但我还有另一个 AddProduct 控制器操作,它仅用于 HTTP-Gets。我能想到的唯一解决方案可能是接受名称值集合(表单数据)并仅使用 UpdateModel/TryUpdateModel。
我还想测试模型绑定本身是否正常工作,因此我想将创建新产品的责任交给模型绑定。
【问题讨论】:
标签: c# asp.net-mvc unit-testing