【发布时间】:2009-07-14 22:15:25
【问题描述】:
我有一个控制器动作来检查
this.User.Identity.IsAuthenticated
您对如何处理此类操作的单元测试有何建议?
【问题讨论】:
-
谢谢 eugene...之前没找到...
标签: asp.net-mvc unit-testing controller
我有一个控制器动作来检查
this.User.Identity.IsAuthenticated
您对如何处理此类操作的单元测试有何建议?
【问题讨论】:
标签: asp.net-mvc unit-testing controller
我建议模拟 IsAuthenticated 属性。 SO上有很多关于这个的其他帖子,你可以搜索一下。
这是一个使用 Moq 模拟请求的示例:
var mockRequest = new Mock<HttpRequestBase>();
mockRequest.Setup(x => x.IsAuthenticated).Returns(true);
var mockContext = new Mock<ControllerContext>();
mockContext.Setup(x => x.Request).Returns(mockRequest.Object);
var myController = new MyController();
myController.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), myController);
我强烈建议您研究 Scott Hanselman 无处不在的“MvcMockHelpers”代码,我正在使用它:
http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx
【讨论】: