我正在尝试在我的应用程序中测试 User.IsInRole("Administrator"),并且实际上尝试将用户角色分配给 ("Administrator") 以便我的测试通过。我正在使用 Scott Hanselman 的 MvcMockHelpers 来执行此操作,目前我有以下测试。
[Test]
public void Create_CanInsertNewArticleView_IsNotNull()
{
// Arrange
var controller = new ArticleController();
MockRepository mockRepo = new MockRepository();
var fakeContext = MvcMockHelpers.FakeHttpContext(mockRepo, "~/Article/Create");
fakeContext.User.IsInRole("Administrator");
// Act
Article fakeArticle = FakeObjects.ReturnFakeArticle();
var result = controller.Create(fakeArticle) as ViewResult;
// Assert
Assert.IsNotNull(result);
}
然而,实际 Controller 的用户目前为空。
谁能帮助我并告诉我正确的测试应该是什么,到
User.IsInRole("Administrator")
感谢您的帮助和时间
约翰
最佳答案
见 this related answer详情。
这是转换为 Rhino Mocks 的其他答案的代码片段:
var user = new GenericPrincipal(new GenericIdentity(string.Empty), null);
var httpCtx = MockRepository.GenerateStub<HttpContextBase>();
httpCtx.User = user;
var controllerCtx = new ControllerContext();
controllerCtx.HttpContext = httpCtx;
sut.ControllerContext = controllerCtx;
关于asp.net-mvc - 在 MVC.NET 中测试 User.IsInRole,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1900071/