かみそりビュー(MVC .NET)の単体テストを試みています。ログインしたユーザーの名前がサイトに表示されるかどうかをテストしたいと思います。User.Identity.Nameが原因で、これをどのように行うかわかりません。これは静的オブジェクトであるため、モックすることはできません。
この静的オブジェクトをテストで設定する必要がありますか?これを行うためのより良い方法はありますか?
ありがとう!
かみそりビュー(MVC .NET)の単体テストを試みています。ログインしたユーザーの名前がサイトに表示されるかどうかをテストしたいと思います。User.Identity.Nameが原因で、これをどのように行うかわかりません。これは静的オブジェクトであるため、モックすることはできません。
この静的オブジェクトをテストで設定する必要がありますか?これを行うためのより良い方法はありますか?
ありがとう!
モック HttpContext を使用して ControllerContext を作成し、好みに合わせて IPrincipal を返すことができます。その方法については、この投稿を参照してください。
モッキングと HttpContextBase.get_User()
この例では Rhino モックを使用していますが、使用しているモック フレームワークに簡単に適応できます。偽の IPrincipal.Identity.Name が名前の文字列を返すことを確認してください。はっきりしないと思われる場合は、FakeItEasy または Rhino Mocks の例を挙げることができます。
次に、ビューの ViewBag または ViewModel に配置されたユーザー名が、偽の IIdentity に返される名前と等しいことをアサートできます。