如何使用TDD测试自定义会员提供程序和自定义会员用户?

4
我需要为一个ASP.NET MVC应用程序创建一个自定义成员身份用户和提供程序,并且我想使用TDD。我已经创建了一个从MembershipUser类继承的User类,但是当我尝试测试它时,出现了一个错误,我无法解决这个错误。我该如何给它一个有效的提供程序名称?我只需要将其添加到web.config文件中吗?但我此时甚至都没有测试Web应用程序。

[失败] UserTests.SetUp.UserShouldHaveMembershipUserProperties 测试用例'UserTests.SetUp.UserShouldHaveMembershipUserProperties'失败:指定的成员提供程序名称无效。 参数名:providerName System.ArgumentException 消息:指定的成员提供程序名称无效。 参数名:providerName 来源:System.Web

2个回答

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 提供了一个不错的解决方案,可以避免在配置文件中设置提供程序。 - David Keaveny

1

是的,您需要在配置文件中进行配置(对于测试库来说可能不是web.config,而是app.config)。您仍然使用<configuration>部分,并在其中使用<system.web>部分进行配置。一旦您完成了这个步骤,就可以实例化您的用户并开始测试。此时,您可能会遇到新问题,您应该将其作为单独的问题发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接