Модульное тестирование действия контроллера Asp.net MVC - PullRequest
3 голосов
/ 15 июля 2009

У меня есть действие контроллера, которое проверяет

this.User.Identity.IsAuthenticated

Что вы предлагаете, как выполнить юнит-тест для такого действия?

1 Ответ

5 голосов
/ 15 июля 2009

Я бы предложил посмеяться над свойством 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);

Я бы настоятельно рекомендовал изучить вездесущий код Скотта Хансельмана "MvcMockHelpers", который я использую:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...