单元测试Asp.net MVC控制器动作

时间:2009-07-14 22:15:25

标签: asp.net-mvc unit-testing controller

我有一个检查

的控制器操作
this.User.Identity.IsAuthenticated

你有什么建议如何处理这种行动的单元测试?

1 个答案:

答案 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