0

かみそりビュー(MVC .NET)の単体テストを試みています。ログインしたユーザーの名前がサイトに表示されるかどうかをテストしたいと思います。User.Identity.Nameが原因で、これをどのように行うかわかりません。これは静的オブジェクトであるため、モックすることはできません。

この静的オブジェクトをテストで設定する必要がありますか?これを行うためのより良い方法はありますか?

ありがとう!

4

1 に答える 1

0

モック HttpContext を使用して ControllerContext を作成し、好みに合わせて IPrincipal を返すことができます。その方法については、この投稿を参照してください。

モッキングと HttpContextBase.get_User()

この例では Rhino モックを使用していますが、使用しているモック フレームワークに簡単に適応できます。偽の IPrincipal.Identity.Name が名前の文字列を返すことを確認してください。はっきりしないと思われる場合は、FakeItEasy または Rhino Mocks の例を挙げることができます。

次に、ビューの ViewBag または ViewModel に配置されたユーザー名が、偽の IIdentity に返される名前と等しいことをアサートできます。

于 2012-08-28T21:51:44.263 に答える