在用户填写注册表并通过所有验证后,我正在使用 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 进行测试。如果控制器只返回一个 View 我想我不会有问题,但是使用 RedirectToAction 方法,我找不到访问重定向表单的实际 url 或路由的方法。有什么建议么?