A partir del ejemplo propuesto en la home de Nightwatch.js, en el que hace una búsqueda en google de un texto, y verifica que ese texto aparece en los resultados, he creado 3 ejemplos de uso de Chance.js y Faker.js. En los 3 casos haremos una búsqueda en google, pero por un nombre propio autogenerado dinámicamente, y verificaremos que ese nombre aparece en la página de resultados.
Hemos generado un archivo utils.js que es dónde tendremos la implementación de la generación de los nombres, y en nuestros tests únicamente llamaremos a utils para que nos dé los datos que necesitamos. De esta forma, si en el futuro cambiamos el framework para generar los datos, únicamente necesitaremos hacer cambios en utils.js.
Cómo ejecutar los ejemplos
Para poder utilizar el proyecto lo primero que debéis hacer es clonar el proyecto de github. El único pre requisito es tener instalado Node.js.
npm install
para instalar Nightwatch.js y las dependencias del proyecto (Chromedriver, Chance.js y Faker.js).node_modules/nightwatch/bin/nightwatch
desde la línea de comandos (o terminal).
Qué hace cada test
En el test exampleUsingChance.js vamos a generar un nuevo nombre y apellido aleatorio con utils.generate_random_name().

En exampleUsingFaker.js queremos usar Faker.js, por lo que le pasamos ‘faker’ cómo parámetro. Esta es una posible implementación, pero es sólo un detalle. En vuestros tests tal vez otra implementación sea más conveniente.

En exampleGeneratingAnObjectWithCredentials.js lo que hacemos es generar un objeto con Nombre, Email, Género y Fecha de nacimiento, algo que podría ser muy útil en este tipo de tests, aunque finalmente sólo usamos el nombre.
El archivo utils.js tendría este aspecto:

Esto es un ejemplo de lo que podríamos hacer. A partir de aquí, podríamo refactorizar para, por ejemplo, dejar de pasarle el timeout a cada waitForElement definiendo una propiedad global waitForConditionTimeout.
1 comentario en «Ejemplo de uso de Chance.js y Faker.js con Nightwatch.js»