4

FormsAuthentication.Authenticate("username", "password") メソッドをテスト資格情報でモックできる方法はありますか? 私のテストの目標は、認証が失敗した場合に正しい場所にリダイレクトされることを確認することです。私はRhino Mocksをモッキングフレームワークとして使用しています。

ご助力ありがとうございます、

4

2 に答える 2

9

mvc を使用しているため、新しいプロジェクトを作成してアカウント コントローラーのコードを調べると、次の説明が見つかります。

FormsAuthentication 型はシールされており、静的メンバーが含まれているため、そのメンバーを呼び出すコードを単体テストすることは困難です。以下のインターフェイスとヘルパー クラスは、AccountController コードをユニット テスト可能にするために、そのような型の周りに抽象ラッパーを作成する方法を示しています。

この下に、次の宣言があります。

public interface IFormsAuthentication
public class FormsAuthenticationService : IFormsAuthentication
public interface IMembershipService
public class AccountMembershipService : IMembershipService

参照されたコードで実装を探すことができます。

于 2009-04-12T22:23:14.253 に答える
3

私は Rhino Mocks を使用していませんが、typemock 以外の .Net モック フレームワークで静的メソッドをモックすることはできないと思います。最善の回避策は、その周囲にインターフェース アダプターを作成することです。

于 2009-04-12T22:09:19.420 に答える