我有一个控制器方法 - CurrentValues
[HttpGet]
public ActionResult CurrentValues(ValueRetrieverViewModel valueRetrieverModel)
{
int page = 0;
if(!string.IsNullOrEmpty(valueRetrieverModel.Page))
{
int.TryParse(valueRetrieverModel.Page, out page);
}
if (page <= 0) page = 1;
var values = GetValues(page);
if (values != null)
{
if (values.QueryResults.Count > 0)
{
ViewData["name"] = valueRetrieverModel.Name;
ViewData["school"] = valueRetrieverModel.School;
ViewData["team"] = valueRetrieverModel.Team;
}
}
var valRtrvrViewModel = new ValuesViewModel
{
Results = values,
InputParms = valueRetrieverModel
};
return View("CurrentValues", searchViewModel);
}
我希望通过使用MS-VS-Unit测试套件对该控制器进行全面的单元测试,如果需要,也可以使用Moq。
此方法的核心是来自 - GetValues(page)
的检索值。
答案 0 :(得分:3)
以下文章非常好地详细解释了在测试控制器时应该编写的所有测试,包括何时使用模拟框架。它也很短。 http://www.arrangeactassert.com/how-to-unit-test-asp-net-mvc-controllers/
摘自文章:
让我先讨论一下你应该选择什么类型的单元测试 为MVC控制器创建。测试以检查正确的操作结果 从控制器操作返回。这包括有关的信息 操作结果,例如测试返回正确的视图 查看结果。
测试以检查视图模型是否符合预期。如果你有 强类型视图,它需要类foo并且你将类bar传递给 您的视图模型,您的代码将编译,将导致运行时 如下所示的错误。
如果您正在测试控制器正在执行的操作 太多了。