2011-02-14 3 views
1

私のビジネスクラスには、呼び出されるとMyObject.AspNetUserId(guidプロパティ)がMembership.GetUser()に自動的に設定される "保存"メソッドがあります。 。私はコードを書いたが、私はこの問題をテストするユニットを持っている。ビジネスロジックと単体テストによるフォーム認証

私のユニットテストでは、テストが壊れているという行 "FormsAuthentication.SetAuthCookie"があります。私はそれが実際にはクッキーを設定することはできませんので、私の単体テストがHTTPコンテキスト内で実行されていないためだと仮定しています。

これを動作させる方法はありますか、それともデモサイトで手動でテストするだけですか?

これは本当に悪い習慣で、私は何か他のことをするべきですか?このコードの目的は、自分のオブジェクトの "CreatedBy"と "EditedBy"プロパティを自動的に設定して、プログラマーがウェブサイトのコードで毎回覚えておく必要がないようにすることです。誰かがより良い方法を持っているなら、私はアイデアを公開しています。

答えて

1

認可インターフェースに対するすべての認可呼び出しのプログラミングについて教えてください。そうすれば、ユニットテスト中にその実装を置き換えて、loginメソッドが呼び出されるという期待を設定することができます。ここで

は一例です:

public interface IAuthorization 
    { 
     bool ValidateUser(LoginUser u, string password); 
     LoginUser GetCurrentUser(); 
     void LogIn(LoginUser user); 
     void LogOut(); 
     IIdentity GetCurrentUserIdentity(); 
    } 
+0

これは良いアイデアです。私の会社の別の開発者と話した後、ビジネスロジックレイヤーでフォーム認証を使用する代わりに、Webプロジェクトで設定されたパブリックプロパティ "ModifiedById"を取得することにしました。 – William

関連する問題