控制器单元测试期间出现角色管理器功能未启用错误
本文关键字:功能 管理器 启用 错误 角色 单元测试 控制器 | 更新日期: 2023-09-27 18:27:42
我正在为控制器的方法进行单元测试。在下面的方法中,我想检查返回类型是否为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_Test.Customer.BusinessUnitControllerTests.AddRepresentative_Get_Action_RendersView引发异常:System.Configuration.Provider.ProviderException:角色管理器功能尚未启用。
问题:在HttpGet方法中收集角色列表不是一个好的做法吗?
为了使测试通过,我需要对控制器或测试方法进行一些更改吗?
出现错误是因为我使用RhinoMock吗?
在HttpGet方法中收集角色列表不是一个好的做法吗?
它没有错。
为了使测试通过,我需要对控制器或测试方法进行一些更改吗?
是的,您可以将app.config文件添加到单元测试项目中,并在<system.web>
部分中注册角色管理器,方法与实际应用程序中的方法相同。否则,您认为Roles.GetAllRoles();
方法将从哪里获得任何数据?或者,您可以将此调用封装在一个服务层中,该服务层可以在单元测试中进行模拟。
出现错误是因为我使用RhinoMock吗?
没有。