WinForms、Console、ASP.NETなどの複数のクライアントタイプから呼び出され、現在のプリンシパルを判別する必要があるライブラリコードがあります。コンソールアプリThread.CurrentPrincipal.Identity.IsAuthenticatedで 単体テストでThread.CurrentPrincipalをunauthenticatedにリセットする方法
var currentUser = !System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated ? null : System.Threading.Thread.CurrentPrincipal.Identity.Name;
if (string.IsNullOrWhiteSpace(currentUser))
{
currentUser = Environment.UserName;
}
は常にそれが常に持っているhowerver MSTestをして偽です:次のようにそうすることで私は2つのステップのThread.CurrentPrincipalのチェック、その後Environment.UserNameを行っております有効な認証済みユーザー。
Consoleアプリケーションを模倣するためにユニットテストのThread.CurrentPrincipalの値をunauthenticatedにリセットする必要はありますか?