В этом модульном тесте я должен проверить дублирующее электронное письмо и имя пользователя. Говоря с другим разработчиком, он сказал, что я должен проверить дублирующее письмо и имя пользователя во вложенном try catch. Я не уверен, что правильно его понял или нет, но вот что у меня есть. Другой разработчик не доступен прямо сейчас, поэтому я не могу попросить его проверить. Я думаю, что этот формат неверен. Любой совет?проверка дубликата электронной почты и имени пользователя в модульном тесте
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) Таблица пользователей имеет уникальный индекс по электронной почте. Вероятно, вы должны создать пользователя дважды с тем же адресом электронной почты и ожидать, что ваш клиент базы данных выберет соответствующее исключение благодаря уникальному индексу. – allonhadaya
Как мне объяснялось, вложенная попытка catch должна генерировать исключение, когда он находит дубликат электронной почты, а затем тест должен продолжаться, но он останавливается. – user216672