【问题标题】:MVC Unit Testing a controllerMVC 单元测试控制器
【发布时间】:2011-12-01 18:16:19
【问题描述】:

我有一个带有Authorize 属性的控制器:

public CustomerController:Controller  
{
    [Authorize]  
    public ActionResult GetCustomer(int id)  
    {  
        var model=db.Customers.where(c=>c.id==id);
        return View(model);   
    }
}

我的问题是,如何测试具有Authorize 属性的控制器?

在从HttpContext进行测试之前,我们是否需要获取用户名和密码等用户信息?

模拟、依赖注入和控制反转是否与单元测试相关?如果是这样,你们能推荐一些网站或文档来学习这些主题吗?

【问题讨论】:

    标签: unit-testing


    【解决方案1】:

    这里有一些使用 mocks、DI、IoC、MVC 进行测试的好例子@

    http://code.google.com/p/sutekishop/source/browse/trunk/Suteki.Shop/Suteki.Shop.Tests/#Suteki.Shop.Tests%2FControllers

    作者不使用 Authorize 属性,而是使用自定义操作过滤器和我相信的基于角色的安全性。

    【讨论】: