Pruebas a un campo
Clase 7 de 17 • Curso de Angular: Unit Testing para Formularios
Contenido del curso
Clase 7 de 17 • Curso de Angular: Unit Testing para Formularios
Contenido del curso
Juan R Rossano
Ana Velez Ossa
David Castro
En el examen a la pregunta : Teniendo en cuenta que el campo emailField en un FormControl ¿Cuál sería la forma correcta de verificar si es un campo inválido? le siguen tres opciones:
a expect(component.emailField?.hasErrors).toBeTruthy();
b expect(component.emailField?.invalid).toBeTruthy();
c expect(component.emailField?.invalid).toBeTruthy();
La b y c las veo iguales y para confirmar copie el texto y los compare (con python) porque pensaba que habia algo que no veia pero el resultado tambien es que eran iguales.
¿Hay algo que no detecto?
Nota:
En Angular, .withContext() se usa en pruebas unitarias para agregar un mensaje descriptivo a los expect, lo que ayuda a identificar y depurar rápidamente fallos en las pruebas con múltiples expectativas.
Código de las pruebas:
it('should the emailField be invalid', () => { component.emailField?.setValue('esto no es un correo'); expect(component.form.get('email')?.invalid).withContext('wrong email').toBeTruthy(); component.emailField?.setValue(''); expect(component.form.get('email')?.invalid).withContext('empty').toBeTruthy(); }); it('should the passwordField be invalid', () => { component.passwordField?.setValue(''); expect(component.passwordField?.invalid).withContext('empty').toBeTruthy(); component.passwordField?.setValue('12345'); expect(component.passwordField?.invalid).withContext('lessThanSix').toBeTruthy(); component.passwordField?.setValue('asdasdasdasdsads'); expect(component.passwordField?.invalid).withContext('withoutNumber').toBeTruthy(); component.passwordField?.setValue('asdasdasd1asdsads'); expect(component.passwordField?.valid).withContext('rigth').toBeTruthy(); }); it('should the form be invalid', () =>{ component.form.patchValue({ name:'Ana', email:'anap@g.com', password:'1222211', confirmPassword:'1222211', checkTerms:false }); expect(component.form.invalid).toBeTruthy(); })
Muchísimas gracias por esta clase, me aclaro muchas cosas y me fue util para por fin aprender las pruebas a los campos.