¡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. Así que si has hecho aunque sea un poco de pruebas unitarias en tu carrera, creo que te sentirás como en casa trabajando con VEST.
Hoy quiero mostrarte cómo podemos usar VEST para mejorar la forma en que escribimos validaciones de formularios en nuestras aplicaciones Vue. Pero antes de comenzar a hablar sobre VEST en sí, quiero mencionar un poco la motivación detrás de VEST y lo que me llevó a escribir VEST en primer lugar.
En mi experiencia escribiendo formularios y construyendo formularios antes de usar VEST, tuve un gran problema de falta de estructura. Estaba tratando de agregar validaciones al formulario y no estaba seguro de dónde debía colocar la lógica de validación. ¿Debería ponerlas dentro de los controladores de cambio? ¿Debería ponerlas en algún lugar de mi función en una biblioteca compartida? ¿Cómo lo escribo? ¿Cómo evito que sea demasiado específico para mi función? 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 controladores y mi función. Pero luego, cuando quería hacer cambios y mantener la función, como agregar más campos en la función o hacer que los campos dependan entre sí o incluso eliminar un campo, era muy, muy difícil porque todo estaba vinculado a la función. Y debido a que todo es muy específico de la función, también era muy difícil aprovecharlo nuevamente. Por ejemplo, tomarlo y usarlo en un formulario diferente o en una función diferente, como el campo de contraseña en restablecer contraseña e iniciar sesión.
Todo esto me llevó a pensar en una solución. Y hace un par de años, cuando trabajaba 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 descripciones y expectativas. Y se parecía mucho a la forma en que estaba pensando en 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 buenos para expresar lo que hay en comparación con cómo debería ser. Entonces pones una función en una prueba, y lo mismo ocurre con la validación de formularios.
Entonces 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 llegar a algo que todavía 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 se me ocurrió es esta. Primero creamos una suite separada del código de nuestra función y agregamos un callback a ella. Dentro del callback, agregamos nuestras pruebas, similares a las pruebas de pruebas unitarias, con un campo adicional o un parámetro adicional, que es el nombre del campo que estamos validando. Entonces, en este caso, tenemos una prueba y estamos probando el nombre de usuario. Y luego tenemos el error que el usuario recibirá en caso de un fallo de validación. El nombre de usuario debe tener al menos tres caracteres.
Comments