我在使用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: ???
}
我使用起订量和NUnit用于测试。如果控制器刚刚返回一个View,我认为我没有问题,但是使用RedirectToAction方法,我无法找到访问重定向窗体的实际url或路由的方法。有什么建议么?
就像一个魅力。谢谢。 –