2008-09-16 138 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)。您仍然使用该部分并在该部分中进行配置。一旦你有了这些,你就可以实例化你的用户并进行测试。在这一点上,你可能会遇到新的问题,我认为你应该将这些问题作为单独的问题发布。

相关问题