在单元测试中检查重复的电子邮件和用户名

本文关键字:电子邮件 用户 单元测试 检查 | 更新日期: 2023-09-27 18:13:59

我必须在这个单元测试中检查重复的电子邮件和用户名。在与另一位开发人员交谈时,他说我应该在嵌套的try catch中检查重复的电子邮件和用户名。我不确定我是否正确地理解了他,但这是我所知道的。另一个开发人员现在不在,所以我不能要求核实。我认为这种格式是不对的。任何建议吗?

        try
        {
            AsaMembershipProvider prov = this.GetMembershipProvider();

            MembershipCreateStatus status;
            MembershipUser user = prov.CreateUser("UserX", "12345", "UserX@abc.com", "", "", true, null, out status);

            user = prov.GetUser("UserX", false);

            var isAuthenticated = prov.ValidateUser(user.UserName, "12345");
            Assert.IsTrue(isAuthenticated);
            Assert.AreEqual(user.UserName, "UserX");
            Assert.AreEqual(user.Email, "userx@abc.com");
            try
            {
                prov.DeleteUser("UserX", true);
                user = prov.GetUser("UserX", false);
                Assert.AreEqual(null, user);
                user = prov.GetUser("UserX", false);

                Assert.AreEqual(status, MembershipCreateStatus.Success);
            }
            catch (Exception ex)
            {
                LogMessage(ex);
                Assert.Fail(ex.Message);
            }

            prov.DeleteUser("UserX", true);
            user = prov.GetUser("UserX", false);
            Assert.AreEqual(null, user);

        }
        catch (Exception ex)
        {
            LogMessage(ex);
            Assert.Fail(ex.Message);
        }
    }

在单元测试中检查重复的电子邮件和用户名

将try块中的代码移动到Assert.Throws<T>:

Assert.Throws<Exception>(() => {
    // attempt to create a duplicate user.
}, "Exception thrown when creating duplicate user.");

Exception更改为您希望在创建副本时抛出的异常类型