Asp.net

為在 ASP.NET Web API 中使用 User.Identity.Name 的方法編寫單元測試

  • October 8, 2012

我正在使用 Unit Test for ASP.NET Web API 編寫測試案例。

現在我有一個動作,它呼叫了我在服務層中定義的一些方法,我在其中使用了以下程式碼行。

string username = User.Identity.Name;
// do something with username
// return something

現在如何為此創建單元測試方法,我得到空引用異常。我對編寫單元測試和東西有點陌生。

我只想為此使用單元測試。請幫我解決這個問題。

下面的只是這樣做的一種方法:

public class FooController : ApiController {

   public string Get() {

       return User.Identity.Name;
   }
}

public class FooTest {

   [Fact]
   public void Foo() {

       var identity = new GenericIdentity("tugberk");
       Thread.CurrentPrincipal = new GenericPrincipal(identity, null);
       var controller = new FooController();

       Assert.Equal(controller.Get(), identity.Name);
   }
}

引用自:https://stackoverflow.com/questions/12780185