我有一个检查
的控制器操作this.User.Identity.IsAuthenticated
你有什么建议如何处理这种行动的单元测试?
答案 0 :(得分:5)
我建议嘲笑IsAuthenticated属性。关于此,还有很多其他帖子,你可以搜索它们。
以下是使用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