C# 验证密码的单元测试
有人能为验证用户密码的单元测试提供一些示例代码吗C# 验证密码的单元测试,c#,unit-testing,validation,passwords,C#,Unit Testing,Validation,Passwords,有人能为验证用户密码的单元测试提供一些示例代码吗 //set test to crate user AsaMembershipProvider prov = this.GetMembershipProvider(); //call get user MembershipCreateStatus status; MembershipUser user = prov.Create
//set test to crate user
AsaMembershipProvider prov = this.GetMembershipProvider();
//call get user
MembershipCreateStatus status;
MembershipUser user = prov.CreateUser("testUserX", "12345", "test.UserX@abc.com", "", "", true, null, out status);
user = prov.GetUser("testUserX", false);
//TODO Asserts
Assert.AreEqual(status, MembershipCreateStatus.Success);
Assert.AreEqual(user.UserName, "testUserX");
Assert.AreEqual(user.Email, "test.userx@abc.com");
//Assert.AreEqual(password, "12345");
如果您想断言密码是正确的,那么可以断言您能够进行身份验证,而不是直接测试密码。测试提供者的功能有点多余
Assert.AreEqual(status, MembershipCreateStatus.Success);
var isAuthenticated = Membership.ValidateUser(user.Username, "12345");
Assert.IsTrue(isAuthenticated);
Assert.AreEqual(user.UserName, "testUserX");
Assert.AreEqual(user.Email, "test.userx@abc.com");
用评论的内容编辑你的问题,这将有助于可读性。其次,您应该能够从某处提取密码散列。只需测试以确保“12345”的哈希值与数据库中的哈希值匹配。您可以发布其余的测试代码吗?断言status==success是否足够?为什么在成员资格提供者的单元测试中需要验证密码(以及用户名)?