0

ASP.NET MVC 3 with Web Api の単体テストを使用してテスト ケースを作成しています。

これで、サービス層で定義したメソッドを呼び出すアクションができました。ここでは、次のコード行を使用しています。

var userId = ((Project)(User.Identity)).UserId;

Project クラスの場所

using System;
using System.Security.Principal;
using System.Web.Security;



namespace Project.Web.Core.Models
{ 
[Serializable]
public class ProjectUser : IIdentity
{
    public ProjectUser(){} 
    public int UserId { get; set; }
  }
}

このための単体テスト メソッドを作成する方法について説明します。null 参照の例外が発生します。単体テストを書くのは初めてです 誰か助けてください

4

1 に答える 1

0

この質問に似ています: User.Identity.Name を使用するコントローラ アクションのテスト

User.Identity オブジェクトが単体テストのコンテキスト内に存在せず、ASP.NET プロセス内で実行されるコードのコンテキスト内にのみ存在する HttpContext。

HttpContext をパラメーターとしてサービス メソッドに渡すと、単体テストの記述が容易になる場合があります。次に、参照されている質問に対するこの回答のようなコードを使用できます。

var mock = new Mock<UnknownServiceClass>();
var mockedUser = new ProjectUser(){ UserId = 1 };
mock.SetupGet(p => p.HttpContext.User).Returns(mockedUser);
于 2012-11-22T19:13:28.527 に答える