2012-05-10 7 views
2

私はAdminControllerというコントローラの中にいくつかのコードを持っています。なぜこのコードはViewNameを持たないビュー結果を返しますか?

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); 

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

答えて

2

ビュー名は、ビューを返すときにviewNameパラメータを設定した場合にのみ設定されます。たとえば、次のようになります。

return View("Login", model); 

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

Assert.AreEqual("", ((ViewResult)result).ViewName); 

したがって、あなたのアサートが書き込まれるべき表示のデフォルトをテストします

関連する問題