3

私のモデルクラスの1つに、次のプロパティがあります。

public virtual bool OkToChangeApprovedForPayment
        {
            get
            {
                return ExportedDateTime == null && PMApproved == true && HttpContext.Current.User.IsInRole(Resources.Roles.VectorOpsAdmin);
            }
        }

ご覧のとおり、条件の1つは、ユーザーの役割をテストすることです。このようなモデルでHttpContextにアクセスしても問題ありませんか?そうでない場合、それを行うためのより良い方法は何ですか?

よろしければ、どのように単体テストを行いますか?HttpContextの呼び出しをどのように置き換えますか?

4

1 に答える 1

2

これは安全です(もちろん、実行中のリクエストのコンテキストでモデルが実行される場合)。

ただし、テストするのは難しいでしょう。テストにより適したモデルにHttpContextBaseのインスタンスを挿入できます。

于 2012-04-22T21:32:16.950 に答える