如何TDD自定义成员资格提供程序和自定义成员资格用户?

时间:2020-03-05 18:57:07  来源:igfitidea点击:

我需要为ASP.NET mvc应用程序创建一个自定义成员身份用户和提供程序,并且正在寻找使用TDD的方法。我创建了一个从MembershipUser类继承的User类,但是当我尝试对其进行测试时,出现了一个我无法弄清的错误。如何给它提供有效的提供商名称?我是否只需要将其添加到web.config?但是我现在还没有测试Web应用程序。

[失败] UserTests.SetUp.UserShouldHaveMembershipUserProperties
TestCase'UserTests.SetUp.UserShouldHaveMembershipUserProperties'
失败:指定的成员资格提供者名称无效。
参数名称:providerName
System.ArgumentException
消息:指定的成员资格提供者名称无效。
参数名称:providerName
资料来源:System.Web

解决方案

回答

是的,我们需要在配置文件中配置它(测试库可能不是web.config,而是app.config)。我们仍然使用该部分,并在该部分中进行配置。设置好之后,我们就可以实例化用户并进行测试。我认为这时我们可能会遇到新问题,应将其作为单独的问题发布。

回答

要添加到单元测试项目配置文件中的配置如下所示:

<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>