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 またはルートにアクセスする方法が見つかりません。助言がありますか?