C# 控制器单元测试期间未启用角色管理器功能错误

C# 控制器单元测试期间未启用角色管理器功能错误,c#,asp.net-mvc,unit-testing,asp.net-mvc-4,roleprovider,C#,Asp.net Mvc,Unit Testing,Asp.net Mvc 4,Roleprovider,我正在为控制器的方法进行单元测试。 在下面的方法中,我想检查返回类型是否为ViewResult [HttpGet] public ActionResult AddRepresentative(Guid businessUnitId) { var roles = Roles.GetAllRoles(); var model = new AddRepresentativeModel { BusinessU

我正在为控制器的方法进行单元测试。 在下面的方法中,我想检查返回类型是否为
ViewResult

    [HttpGet]
    public ActionResult AddRepresentative(Guid businessUnitId)
    {
        var roles = Roles.GetAllRoles();
        var model = new AddRepresentativeModel
        {
            BusinessUnitId = businessUnitId,
            Roles = roles.Select(r => new SelectListItem
            {
                Value = r,
                Text = r,
            })
        };
        return View(model);
    }
这就是我为测试所做的

   [TestMethod]
    public void AddRepresentative_Get_Action_RendersView()
    {
        var result = _controller.AddRepresentative(Guid.Empty);

        Assert.IsInstanceOfType(result,typeof(ViewResult));
    }
错误

试验方法 AdminPortal.Tests.Controller\u Test.Customer.BusinessUnitControllerTests.AddRepresentative\u Get\u Action\u RenderView 引发异常:System.Configuration.Provider.ProviderException:异常 尚未启用角色管理器功能

问题: 在HttpGet方法中收集角色列表不是一种好的做法吗

为了通过测试,我是否需要在控制器或测试方法中进行一些更改

发生错误是因为我正在使用RhinoMock吗

在HttpGet方法中收集角色列表不是一种好的做法吗

没什么问题

为了通过测试,我是否需要在控制器或测试方法中进行一些更改

是的,您可以将app.config文件添加到单元测试项目中,并在
部分注册一个角色管理器,就像您在实际应用程序中所做的那样。否则,您认为
角色在哪里方法将从中获取任何数据?或者,您可以将此调用包装在服务层中,该服务层可以在单元测试中模拟

发生错误是因为我正在使用RhinoMock吗

没有

在HttpGet方法中收集角色列表不是一种好的做法吗

没什么问题

为了通过测试,我是否需要在控制器或测试方法中进行一些更改

是的,您可以将app.config文件添加到单元测试项目中,并在
部分注册一个角色管理器,就像您在实际应用程序中所做的那样。否则,您认为
角色在哪里方法将从中获取任何数据?或者,您可以将此调用包装在服务层中,该服务层可以在单元测试中模拟

发生错误是因为我正在使用RhinoMock吗

没有