¿Alguien sabe cómo probar las validaciones de mangosta?Prueba de validación de MongooseJs
ejemplo, he el siguiente esquema (como ejemplo):
var UserAccount = new Schema({
user_name : { type: String, required: true, lowercase: true, trim: true, index: { unique: true }, validate: [ validateEmail, "Email is not a valid email."] },
password : { type: String, required: true },
date_created : { type: Date, required: true, default: Date.now }
});
El validateEmail método se define como tal:
// Email Validator
function validateEmail (val) {
return /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(val);
}
I desea probar las validaciones. El resultado final es que quiero poder probar las validaciones y, dependiendo de lo que esté sucediendo, puedo escribir otras pruebas que prueben las interacciones entre esos fragmentos de código. Ejemplo: el usuario intenta registrarse con el mismo nombre de usuario que el que se tomó (el correo electrónico ya está en uso). Necesito una prueba que realmente pueda interceptar o ver que la validación está funcionando SIN golpear la base de datos. NO quiero pegarle a Mongo durante estas pruebas. Estas deberían ser pruebas UNIT NO pruebas de integración. :)
Gracias!
Para el último par de pruebas donde llamas al usuario.validate(): estoy ejecutando mis pruebas usando ronco y nodo de jazmín y mis afirmaciones nunca fueron golpeadas para fallar una compilación. Tuve que configurar mis pruebas para las devoluciones de llamada para que las aserciones se ejecutaran correctamente. En mi caso, usando jasmine-node, agregué un jasmine.asyncSpecWait() al final de cada prueba y un jasmine.asyncSpecDone() dentro de la devolución de llamada validada. Entonces todo estuvo bien. ¡Respuesta muy útil! –