Я использую метод RedirectToAction для перенаправления пользователя в другую форму после того, как он заполнил регистрационную форму, и все проверки были переданы. Единственная проблема возникает при тестировании контроллера. Как проверить, что пользователь был успешно перенаправлен в нужную форму?Как протестировать этот контроллер?
Контроллер:
[HttpPost]
public ActionResult Register(ClientViewModel clientViewModel)
{
if (ModelState.IsValid)
{
//filling db object
if (license.HasValue)
{
return RedirectToAction("RegisterSuccess");
}
}
return View(clientViewModel);
}
Метод испытания:
public void Register_WithUniqueUsernameAndEmail_ReturnsRegistrationSuccessful()
{
// Arrange:
var mock = new Mock<IAccountFacade>();
mock.Setup(/*mocking methods*/);
var controller = new AccountController(mock.Object);
var context = new ControllerContext();
var fakeClientViewModel = new ClientViewModel
// Act:
var result = controller.Register(fakeClientViewModel);
// how do I get the name of result or something similar?
// Assert: ???
}
Я использую Moq и NUnit для тестирования. Если контроллер просто вернул представление, я думаю, что у меня не было бы проблем, но с помощью метода RedirectToAction я не могу найти способ получить доступ к фактическому URL-адресу или маршруту формы перенаправления. Какие-либо предложения?
работает как шарм. Благодарю. –