Я добавил функциональность в Контроллер учетных записей -> Регистрация ActionValidateRegistation, чтобы проверить наличие пробелов в форме регистрации пользователя. Теперь я хочу добавить ошибку в форму, если введенный пользователем адрес электронной почты уже находится в системе. Я добавил функцию проверки дубликата адреса электронной почты в конце функции ValidateRegistration.
Я использую linq для запроса базы данных, чтобы создать список пользователей и проверить электронную почту, если она уже была использована, которая хорошо работает во время выполнения. Я создал базовый визуальный тест с проверкой объекта пользователя (имя пользователя, пароль и т. Д.) На наличие дублированного адреса электронной почты во время действия регистрации. Как избежать того, чтобы ValidateRegistration запрашивал базу данных и создавал список пользователей (что я и хочу во время выполнения), а вместо этого предоставлял ValidateRegistration поддельным пользовательским объектам во время модульного тестирования?
Пример кода: Аккаунты Contoller
public ActionResult Register(string username... string password...)
{
//Call the ValidateRegistration(string username... string password...);
//Add user if ValidateRegistration checks have passed
}
public ValidateRegistration (строка имени пользователя ... строка пароля ...)
{
// Проверяем имя пользователя, если пусто
// ModelState.AddModelError (имя пользователя пусто)
// проверка длины пароля
// ModelState.AddModelError (пароль слишком короткое сообщение)
// List lstUsers = GetUsers ();
// проверяем, используется ли адрес электронной почты
// ModelState.AddModelError (электронная почта уже используется)
// Как мне проверить блок проверки вышеуказанного адреса электронной почты?
}
SampleCode: тесты единиц измерения
public void RegisterPostReturnsViewIfFirstnameNotSpecified()
{
// Arrange
AccountController controller = GetAccountController();
// Act
ViewResult result = (ViewResult)controller.Register(string username... string password...)
// Assert
Assert.AreEqual(6, result.ViewData["PasswordLength"]);
Assert.AreEqual(See if error message is equal);
}