2008-09-16 2 views
4

ASP.NET mvcアプリケーション用のカスタムメンバーシップユーザーとプロバイダーを作成する必要があり、TDDを使用する予定です。私はMembershipUserクラスから継承するUserクラスを作成しましたが、テストしようとするとわかりませんがエラーが発生します。有効なプロバイダ名を与えるにはどうすればよいですか? web.configに追加するだけですか?しかし、私はこの時点でウェブアプリをテストしていません。カスタムメンバーシッププロバイダーとカスタムメンバーシップユーザーをTDDにするにはどうすればいいですか?

[失敗] UserTests.SetUp.UserShouldHaveMembershipUserProperties のTestCase 'UserTests.SetUp.UserShouldHaveMembershipUserProperties' に失敗しました:指定されたメンバシッププロバイダ名が無効です。 パラメーター名:providerName System.ArgumentException メッセージ:指定されたメンバーシッププロバイダー名が無効です。 パラメータ名:providerName ソース:System.Web

答えて

7

あなたのユニットテストプロジェクトの設定ファイルに追加するための構成は次のようになります。

<connectionStrings> 
    <remove name="LocalSqlServer"/> 
    <add name="LocalSqlServer" connectionString="<connection string>" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
    <membership defaultProvider="provider"> 
     <providers> 
     <add name="provider" applicationName="MyApp" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" maxInvalidPasswordAttempts="3" passwordAttemptWindow="15"/> 
     </providers> 
    </membership> 
    </system.web> 
+1

http://aedenjameson.blogspot.com.au/2009/04/unit-testing-custom-membership -provider.htmlは、あなたの設定でプロバイダを設定しなければならないための素晴らしい回避策を提供します。 –

1

はい、構成ファイル(おそらくテストライブラリの場合はweb.configではなくapp.config)で構成する必要があります。セクションを使用して、そのセクション内で構成を実行します。これを実行すると、ユーザーをインスタンス化してテストすることができます。どの時点で新しい問題が発生する可能性がありますか。別の質問として投稿する必要があります。

関連する問題