12

ASP.NET MVCユーザーが認証されているかどうかを確認するコントローラーコードがいくつかあります。認証されている場合は、特定のクレームがあるかどうかを確認します。正常に動作します。

いくつかの単体テストがあり、モックを作成する必要がありますIPrincipal(これは簡単に実行できます) ... しかし、クレームを確認する方法がわかりません! 私は通常、次のようなことをします

public static ClaimsPrincipal ClaimsPrincipal(this Controller controller)
{
    return controller.User as ClaimsPrincipal;
}

そしていくつかのコントローラーコード...

this.ClaimsPrincipal().HasClaim(x => x.......);

しかし、ユニットテストでこれをテストすると、これはすべて失敗します..どうすればよいかわからないためmockですClaimsPrincipal

何か案は?

4

3 に答える 3

6

「モック」とはどういう意味かわかりません。ただし、ClaimsPrincipalを最初から作成するだけで済みます。最初にClaimsIdentityを作成します-必要なクレームと認証方法を追加します。次に、ClaimsPrincipalでラップします。

于 2013-01-07T06:04:51.597 に答える
3

また、ほとんどのメソッドは仮想であるため、それらはモック可能です。

于 2013-01-09T02:20:48.550 に答える