2009-07-14 100 views
3

我有检查单元测试的Asp.net MVC控制器动作

this.User.Identity.IsAuthenticated 

你有什么建议如何处理单元测试在这样一个动作控制器的动作?

+0

完全相同的问题:http://stackoverflow.com/questions/1106398/how-to-unit-test-an-mvc-controller-action-which-depends-on-authentification-in-c – 2009-07-15 05:08:33

+0

谢谢eugene ...以前没有找到它... – 2009-07-15 08:51:45

回答

5

我会建议嘲笑IsAuthenticated属性。 SO上还有很多关于此的帖子,你可以搜索它们。

这里是嘲讽使用起订量要求的例子:

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); 

我会强烈建议寻找到斯科特Hanselman的无处不在的“MvcMockHelpers”的代码,这是我用:

http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx