¡Hola! Soy Aviatar. Soy un ingeniero de front-end en Facebook, y soy el autor de VEST. VEST es un marco de validación de formularios inspirado en bibliotecas de pruebas unitarias como Mocha o Jest. Entonces, si has hecho incluso un poco de pruebas unitarias en tu carrera, creo que te sentirás muy a gusto trabajando con VEST.
Hoy, quiero mostrarte cómo podemos usar VEST para mejorar la forma en que escribimos validaciones de formularios en nuestras aplicaciones de Vue. Pero antes de comenzar a hablar sobre VEST en sí, quiero mencionar un poco la motivación detrás de VEST y qué me llevó a escribir VEST para empezar.
En mi experiencia escribiendo formularios y construyendo formularios antes de usar VEST, tenía un gran problema de falta de estructura. Entonces, estaba tratando de agregar validaciones al formulario, y no estaba seguro de dónde debería poner la lógica de validación. ¿Debería ponerlas dentro de un manejador de cambios? ¿Debería ponerlas en algún lugar de mi característica en una biblioteca compartida? ¿Cómo lo escribo? ¿Cómo evito que sea demasiado específico para mi característica? Y no hay una estructura específica que las validaciones deban seguir.
Así que terminé haciéndolo funcionar escribiéndolo en algún lugar entre mis manejadores y mi característica. Pero luego, cuando quería hacer cambios y mantener la característica, como agregar más campos en la característica, o hacer que los campos dependieran unos de otros o incluso eliminar un campo, era muy, muy difícil porque todo estaba atado a la característica. Y porque todo es muy específico para la característica, también era muy difícil reutilizarlo. Así que para tomarlo y usarlo en un formulario diferente o una característica diferente, como el campo de contraseña tanto en restablecer contraseña como en iniciar sesión.
Así que todo esto me llevó a pensar en una solución. Y hace un par de años, cuando estaba trabajando con un empleador anterior, acabábamos de comenzar a escribir pruebas unitarias para nuestras aplicaciones. Y vi que los patrones que tienen las pruebas unitarias, que tenemos esa suite de pruebas con describe y expect. Y se veía muy similar a la forma en que estaba pensando sobre la validación de formularios en mi mente. Porque las pruebas unitarias son declarativas por naturaleza, por lo que puedes describir exactamente lo que quieres que suceda. Y junto con eso, son muy buenas para expresar lo que hay en comparación con cómo debería ser. Así que pones una función en una prueba, y lo mismo ocurre con la validación de formularios.
Así que quiero que mis valores, mis datos, pasen por algunas pruebas. Y todo parece muy relevante para el mundo de la validación de formularios. Por supuesto, no es exactamente lo mismo, y la terminología es diferente, y no ejecutamos pruebas unitarias en producción. Pero con algunos ajustes de diseño, pude idear algo que aún es muy similar a la forma en que escribimos pruebas unitarias, y sigue siendo muy relevante para la validación de formularios. Y la estructura que ideé es esta. Primero creamos una suite que está separada de nuestro código de características, y le añadimos un callback. Dentro del callback, añadimos nuestras pruebas, similar a las pruebas unitarias, con un campo adicional o un parámetro adicional, que es el nombre del campo que estamos validando. Así que en este caso tenemos test, y estamos probando ese nombre de usuario. Y luego tenemos el error que el usuario recibirá en caso de un fallo de validación. Así que el nombre de usuario debe tener al menos tres caracteres.
Comments