2

AdminControllerというコントローラー内にいくつかのコードがあります。

public ActionResult Login()
{
    AdminModel model = new AdminModel();
    return View(model);
}

テストメソッドでビューを検査すると...

 var result = controller.Login();

 //assert
 Assert.IsInstanceOfType(result, typeof(ViewResult));
 Assert.AreEqual("Login", ((ViewResult)result).ViewName);

ビュー名は表示されません。ただし、ログインビューは確実に返されます。ビュー名が設定されていないのはなぜですか?デフォルトでアクション結果メソッド名になっていると思いましたか?

4

1 に答える 1

2

viewNameViewNameは、ビューを返すときにパラメーターを設定した場合にのみ設定されます。例えば:

return View("Login", model);

それ以外の場合、ビュー名が設定されていない場合は、デフォルトのビューが使用されます。

したがって、デフォルトのビューをテストするには、アサーションを次のように記述する必要があります。

Assert.AreEqual("", ((ViewResult)result).ViewName);
于 2012-05-10T09:02:37.600 に答える