Je fonctionnalités ajoutées au contrôleur des comptes -> Enregistrement fonction ActionValidateRegistation pour tester les blancs dans le formulaire d'inscription de l'utilisateur. Je veux maintenant jeter une erreur au formulaire si l'adresse e-mail que l'utilisateur a entré est déjà dans le système. J'ai ajouté la fonction vérifiant l'adresse email en double à la fin de la fonction ValidateRegistration.Comment tester les adresses e-mail en double dans .NET MVC
J'utilise LINQ pour interroger la base de données pour créer une liste d'utilisateurs et de vérifier le courrier électronique si elle a déjà été utilisé qui fonctionne bien pendant l'exécution. J'ai créé un test de base visuel avec tester l'objet utilisateur (nom d'utilisateur, mot de passe, etc.) pour une adresse e-mail en double pendant l'action d'inscription. Comment éviter le ValidateRegistration d'interroger la base de données et de créer une liste d'utilisateurs (ce que je veux pendant l'exécution), mais plutôt de valider ValidateRegistration avec de faux objets utilisateur lors des tests unitaires?
Exemple de code: Comptes Contoller
public ActionResult Register(string username... string password...)
{
//Call the ValidateRegistration(string username... string password...);
//Add user if ValidateRegistration checks have passed
}
ValidateRegistration public (nom d'utilisateur string ... string password ...) {// Vérifiez le nom d'utilisateur si elle est vide // ModelState.AddModelError (nom d'utilisateur est vide)
// vérifier la longueur du mot de passe // ModelState.AddModelError (mot de passe est trop court un message)
// Liste lstUsers = GetUsers(); // vérifier si l'adresse e-mail est déjà utilisée // ModelState.AddModelError (adresse e-mail déjà utilisée)
// Comment tester l'adresse e-mail ci-dessus?
}
SampleCode: Unités Tests
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);
}