0
이 단위 테스트에서 중복 이메일 및 사용자 이름을 확인해야합니다. 다른 개발자와 이야기하면서 그는 중첩 된 try catch에서 중복 된 전자 메일과 사용자 이름을 확인해야한다고 말했다. 나는 그를 정확하게 이해했는지 안했는지 모르겠다. 그러나 여기에는 내가 가진 것이있다. 다른 개발자는 현재 사용할 수 없으므로 확인을 요청할 수 없습니다. 이 형식이 맞지 않다고 생각하는 Im. 어떤 충고?단위 테스트에서 중복 이메일 및 사용자 이름 확인
try
{
AsaMembershipProvider prov = this.GetMembershipProvider();
MembershipCreateStatus status;
MembershipUser user = prov.CreateUser("UserX", "12345", "[email protected]", "", "", 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, "[email protected]");
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 catch (try/catch 내의 try/catch)입니다. 구현에 문제가 있습니까? 오류/예기치 않은 결과? – tnw
여기서는 두 가지 가정을 할 것입니다. 1) 사용자가 데이터베이스에 저장 중입니다. 2) 사용자 테이블은 전자 메일에 고유 한 인덱스를 가지고 있습니다. 동일한 전자 메일을 사용하여 사용자를 두 번 생성해야하며 데이터베이스 클라이언트가 고유 인덱스 덕분에 적절한 예외를 throw해야합니다. – allonhadaya
나에게 설명했듯이 중첩 된 try catch는 중복 된 전자 메일을 발견하고 테스트를 계속해야하지만 예외가 발생하면 예외를 throw해야합니다. – user216672