2008-09-16 102 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提供了一個很好的解決方法,用於在您的配置中設置提供程序。 – 2012-09-12 01:56:24

1

是的,你需要配置它在你的配置文件(可能不是web.config的測試庫,但app.config)。您仍然使用該部分並在該部分中進行配置。一旦你有了這些,你就可以實例化你的用戶並進行測試。在這一點上,你可能會遇到新的問題,我認爲你應該將這些問題作爲單獨的問題發佈。

相關問題