asp.net-mvc - 单元测试 Asp.net MVC Controller 操作

标签 asp.net-mvc unit-testing controller

我有一个 Controller 操作来检查

this.User.Identity.IsAuthenticated

您对如何处理此类操作的单元测试有何建议?

最佳答案

我建议模拟 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

关于asp.net-mvc - 单元测试 Asp.net MVC Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128360/

相关文章:

css - 如何使用 C# 设置 css 类 'active'?

java - Mockito 比 EasyMock 更受欢迎?

ajax - Grails和Ajax无法成功通过 Controller 传递数据

objective-c - 为什么我的 OCUnit 测试失败并返回 "code 138"?

c# - 使用 AutoMoq 创建 Controller 时,Fixture.CreateAnonymous 方法会因错误 (AutoFixture) 终止测试运行程序进程

extjs - 在 ExtJS 4 MVC 中使用多个 Controller

asp.net-mvc - asp.net mvc 通用 Controller

asp.net - NuGet 中的 RouteDebug 没有强名称

c# - 名称 'Scripts' 在 MVC 的当前上下文中不存在

jquery - ASP.NET MVC 客户端电子邮件验证不起作用