1
私は、Azure Mobile App .Net Serverの権限で私のapiコントローラをユニットテストしようとしています。ユニットテストAzure Mobile .NETコントローラ(許可付き)
は私のコントローラメソッドは次のようになります。私はこのようなユニットテストの方法で私の要求を構成し
[Authorize]
public HttpResponseMessage SomeMethod()
{
var claimsPrincipal = this.User as ClaimsPrincipal;
string userId = claimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value;
return Request.CreateResponse(HttpStatusCode.OK, userId);
}
:
[TestMethod]
public void SomeMyAPIControllerTest(){
var config = new HttpConfiguration();
var request = new HttpRequestMessage();
request.RequestUri = new Uri("http://localhost:50268/api/MyAPI");
request.Headers.Add("x-zumo-auth", "_user_auth_token_");
request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
var controller = new MyAPIController(TestContext)
{
Request = request
};
var response = controller.SomeMethod();
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
}
私のコントローラメソッドは、ローカルホスト上の闊歩を経て正常に動作しますが、ユニットテストの方法を経由してそれは動作しません。 認証済みのユーザー情報を取得しようとすると、が返されます。null
私はリクエスト構成に間違いがあります。助言がありますか?
、@Nkosi、ありがとうございました。私の例では、 "identity/claims/name:[email protected]"を得ることができますが、 "identity/claims/nameidentifier"型を追加する方法はありますか? – deman4ik
@ deman4ikあなたがリクエストした情報を含めるように答えを更新しました。あなたがこの質問を助けてくれたら助かります。これが実際にあなたの問題を解決するのであれば、答えとしてマークすることを忘れないでください。ありがとう – Nkosi
はい、まさに私が望んでいた!ありがとうございました! – deman4ik