2009-06-24 9 views
1

認証を使用してタスクを実行する前にユーザーがログインして認証されているかどうかを確認するテストがあります。認証プログラム可能なログインC#

ユニットテストの認証を設定して、メインアプリケーションの認証を許可してログインしていると欺くことができますか?

答えて

2

この場合、IIdentityインスタンスを取得するメソッドがあります。 。その後、

public void DoSomething(IIdentity identity) 
{ 
    if(identity.IsAuthenticated) ... 
} 

「ユーザー」は、ログインまたはログインされていないことを確実にするためにIIdentityをモックする(例えばRhinoのモックなど)任意のモックフレームワークを使用することができ、その後、あなたのユニットテストは、次のようになります。

[Test] 
public void Test() 
{ 
    var mockery = new MockRepository(); 
    IIdentity identity = mockery.DynamicMock<IIdentity>(); 

    //perform your test logic here 
} 
+0

はい、私はあなたがこれに近づいているかを確認することができ、問題は、私はSQLにLINQを使用していて、それがあるとしてdoSomethingの()は、任意のパラメータを許可しません。 部分的な無効化OnCreated() { – Coppermill

0

解決策の1つは、すべてのユーザーを許可するようにauthorization要素が設定されているテストマシン上のweb.configファイルを作成することです。これはテストマシンとプロダクションマシンに互換性のないWeb設定があることを前提としています(つまり、認証されていないweb.configを誤ってプロダクションマシンにアップロードした場合、認証を削除するだけでなく、

この考えられるかもしれない悪い習慣...

関連する問題