bxl*_*wi1 2 asp.net-mvc unit-testing
我一直在阅读有关正确的单元测试控制器逻辑方法的各种教程.采取以下行动:
public ActionResult Login()
{
//Return the index view if we're still here
return View();
}
Run Code Online (Sandbox Code Playgroud)
街上的字是连接一个类似这样的测试方法:
[TestMethod]
public void TestLoginView()
{
//Set up an instance of the controller
var thisController = new UserController();
//Invoke the index action
var actionResult = (ViewResult)thisController.Login();
//Validate the test
Assert.AreEqual("Login", actionResult.ViewName);
}
Run Code Online (Sandbox Code Playgroud)
断言按预期工作.但是,这个控制器有一个基类,它覆盖了OnActionExecuting函数,以便设置各种页面元素chrome(导航元素,面包屑等).这个逻辑点永远不会被击中.
我可以轻松地测试控制器中使用的模型,但是我想在控制器层进行测试.想法?
测试框架只调用测试中的特定方法,它不模仿ASP.NET MVC框架并触发通常会发生的所有事件.我会在单独的测试中测试你的OnActionExecuting逻辑,以确保它的工作原理.此测试应仅测试相关控制器方法中的功能.如果您基于其他事件触发有特殊期望,则需要在调用控制器方法之前在控制器上下文中对它们进行模拟.