User:Iho jose/units/js

Estandar para pruebas unitarias para aplicaciones desarrolladas en NodeJS. Las pruebas unitarias automáticas nos permiten determinar que los métodos y funciones para una aplicación funcionan correctamente.

Requerimientos

 * Tener instalado NodeJS en el servidor que se utilizará.
 * Necesitaremos KarmaJS, PhantomJS y Jasmine.

Recomendaciones

 * Para versionamiento de la aplicación se recomienda seguir un estandar como SemanticVersion (http://semver.org/lang/es/).
 * Para versionamiento de código usar GIT.

Creación de proyecto (ExpressJS)

 * 1) Para iniciar un proyecto con NodeJS utilizamos el comando  . Este nos dará unos datos a llenar como, nombre de la aplicación, versión, descripción, licencia, autor(es), etc... (En el dato de "test", no agregar nada, y en el dato de "main", poner  ). Este creará un archico llamado , en el que se basará el proyecto.
 * 2) Crearemos una estructura para el proyecto.
 * 3) Descargar ExpressJS (framework rápido para NodeJS), y las dependencias para bases de datos y otros:
 * 4) Creamos el archivo , en la raíz del proyecto y agregamos el siguiente código que nos permitirá ejecutar el proyecto.
 * 5) Creamos ahora los archivos de index y api que habiamos especificado en server.js. Creamos index.js en el directorio /app/, con el siguiente código: Creamos api.js en el direcotiro de /api/, con el siguiente código:
 * 6) Para comprobar que la aplicación funciona usamos el comando.
 * 7) Luego en el directorio /views/ crearemos el archivo index.html que fue especificado en el archivo index.js. Este index.html es la página principal a mostrarse en la aplicación, en la raíz.
 * 8) Ahora instalaremos las dependencias para hacer pruebas unitarias, (https://github.com/jasmine/jasmine).
 * 9) Ahora vamos a package.json, y especificaremos el script de test. package.json
 * 10) Para comprobar que se ejecuta el test usamos el comando.
 * 11) Ahora configuramos bower para descargue sus dependencias en el directorio publico. Archivo .bowerrc
 * 12) En este caso se utlizará AngularJS para crear la aplicación web.

Configurando Karma para Testing

 * 1) Desde la raíz del proyecto ejecutamos el comando  . Este nos mostrará unas opciones, la primera debe ser , luego pregunta por el navegador, usando las flechas hacia arriba y hacia abajo seleccionamos el navegador, usaremos PhantomJS, al resto de preguntas damos enter. (Podemos dejar o agregar Chrome para que ejecute el navegador para hacer testing).
 * 2) Luego en el archivo generado  vamos a agregar las rutas a los archivos que se carganrán para hacer test, el siguiente es un ejemplo.
 * 3) Para ejecutar la prueba en consola usamos el comando.

Creando una prueba unitaria
Todas las posibilidades de pruebas unitarias para Javascript están descritas en la documentación de Jasmine, https://jasmine.github.io/2.8/introduction

Ejemplo
En el directorio, creamos un archivo para pruebas que tendrá cualquier nombre pero que terminará con. Por ejemplo,.

Por lo general el archivo se llama igual al original pero con .spec. Es decir, que si el archivo js que contiene los métodos se llama application.js, el de pruebas se llama application.spec.js.

El siguiente código es un ejemplo de una pruebas unitaria simple:

Ejemplo usando AngularJS
Usando AngularJS, necesitamos tener acceso a la aplicación de Angular y al controlador correspondiente.

Archivo javascript de la aplicación de angularjs: Archivo de pruebas de la aplicación de angular: