c# - 在创建用户时测试 ASP.NET 成员资格提供程序重复电子邮件

标签 c# asp.net-mvc-3 tdd membership-provider

我正在尝试使用成员资格和角色提供者方法。到目前为止一切顺利,但我目前停留在使用提交的重复电子邮件创建用户。

    [Test]
    public void can_create_user_with_given_duplic_Email()
    {
        MembershipCreateStatus status = new MembershipCreateStatus();
        provider.CreateUser("FirstUser", _Password, _Email, null, null, true, Guid.NewGuid(), out status);
        provider.CreateUser("SecondUser", _Password, _Email, null, null, true, Guid.NewGuid(), out status);

        Assert.AreEqual(MembershipCreateStatus.DuplicateEmail, status);
    }

如您所见,我正在等待来自 MembershipCreateStatus 的重复电子邮件消息。

运行此测试时我实际上得到的错误消息如下

can_create_user_with_given_duplic_Email has failed:
  Expected: DuplicateEmail
  But was:  ProviderError

只需提及 provider.CreateUser() 就可以正常工作。

最佳答案

您可以使用 requiresUniqueEmail="false" 来允许重复的电子邮件。

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear/>
    <add name="DefaultMembershipProvider" 
         type="System.Web.Providers.DefaultMembershipProvider, 
                  System.Web.Providers, Version=1.0.0.0, 
                  Culture=neutral, 
                  PublicKeyToken=31bf3856ad364e35" 
         connectionStringName="SqlConnection" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         applicationName="MyApp"/>
  </providers>
</membership>

关于c# - 在创建用户时测试 ASP.NET 成员资格提供程序重复电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929118/

相关文章:

c# - 将 unicode 转义序列转换为字符串

c# - 如何固定 Mdi 子窗体的位置?

c# - 从数据库中检索数据时 DBNull 为其他类型

unit-testing - 在对公共(public)方法进行单元测试时是否可以使用另一个公共(public)方法进行验证

c# - LINQ 等于 - 它在幕后调用什么?

c# - 将英镑符号从 Delphi 发送到 C# Web 服务

asp.net-mvc-3 - 如何在asp net mvc3中将值从部分 View 传递到父 View

asp.net - 样式嵌套在另一种样式的 asp.net View 中,但不确定如何嵌套

tdd - 基于负属性的测试

c# - TDD: stub 、模拟或以上都不是