2017-12-19 4 views
1

を通じてアクセスされたときに、私はこの「HttpContext.Current.Userは、」それは私の方法ではユニットテスト方法

public class Test 
{ 
public UserPrincipal GetUserContext() 
{ 
    System.Security.Principal.IPrincipal user = HttpContext.Current.User; 
    return user; 
} 
} 
.Like「 HttpContext.Current.User」を使用して、現在のユーザーを取得しています、nullです私はこのようなアクセス午前試験方法で

[TestMethod()] 
public void TestMethod() 
{ 
Test objTest = new Test(); 
System.Security.Principal.IPrincipal user=objTest.GetUserContext() 
} 

私が原因の例外を有していこの試験方法の実行中に「HttpContext.Current.User」nullである

この問題に詳しい人はいらっしゃいますか? ありがとうございます。

+0

あなたはhttpリクエストのコンテキストではありません。 –

+0

はい、私は今、テストケースを実行する他の方法はありますか? –

+1

[HttpContext.Currentがユニットテスト時にnullになる可能性があります](https://stackoverflow.com/questions/38170467/httpcontext-current-is-null-when-unit-test) – Nkosi

答えて

0

このコードは、偽のHttpContextを作成します:あなたは、あなたのテストクラスでコードを実行すると

string UserName = "username"; 
    HttpContext.Current = new HttpContext(
          new HttpRequest("", "http://tempuri.org", ""), 
          new HttpResponse(new StringWriter())); 
    HttpContext.Current.User = new GenericPrincipal(
           new GenericIdentity(UserName),new string[0]); 
関連する問題