Я только начал изучать и использовать ASP.NET MVC 2, а также более активно участвовать в модульном тестировании моего кода. Мой вопрос заключается в том, как симулировать вход пользователя в систему, передавая учетные данные в моем тесте.Как подделать логин пользователя для модульного тестирования с использованием fakeiteasy в asp.net mvc 2
Я использую MSpec и пытаюсь поднять голову под фейкитеази, чтобы написать свой тест. До сих пор, я считаю, что я написал один тест правильно (он проходит условие теста), когда пользователь, не прошедший проверку подлинности, пытается получить доступ к странице.
Subject(typeof(HomeController))]
public class context_for_a_home_controller_for_not_logged_user
{
protected static HomeController HomeController;
Establish context =() =>
{
// Create controller
HomeController = new HomeController();
HomeController.ControllerContext = A.Fake<ControllerContext>();
};
}
[Subject(typeof(HomeController))]
public class when_the_home_page_is_requested : context_for_a_home_controller_for_not_logged_user
{
static ActionResult result;
Because of =() =>
result = HomeController.Index();
It should_return_the_log_in_page_if_user_not_logged_in =() =>
{ result.ShouldBeAView().And().ShouldUseDefaultView(); };
}
Пока все хорошо. Тем не менее, я бы хотел протестировать сценарий, когда пользователь, прошедший проверку подлинности, попадает на домашний контроллер. Я застрял в том, как имитировать аутентифицированного пользователя, и любая помощь или совет будут приветствоваться.
ТИА,
Дэвид
Привет, Дарин, благодарю вас за сообщение этого ответа. К сожалению, строка A.CallTo (() => HomeController.User). Возвраты (fakePrincipal); вызывает ошибки, поскольку HomeController является объектом тестирования и не является поддельным объектом. Есть ли у вас какие-либо дополнительные предложения, чтобы получить код? – DavidS 2010-12-03 09:24:55