Bienvenida e Introducci贸n

1

驴Qu茅 son las pruebas unitarias?

2

驴Por qu茅 hacer pruebas unitarias?

Creando un framework de pruebas b谩sico

3

Mi primera prueba unitaria en JavaScript

4

Las funciones expect() y it()

5

Organizando el c贸digo para correr en la web

6

Organizando el c贸digo para correr utilizando nodejs

An谩lisis est谩tico de c贸digo

7

Herramientas de an谩lisis est谩tico de c贸digo

8

ESLint: Agregando alertas a nuestro c贸digo con ECMA Script

9

Herramientas de correcci贸n de estilo

10

Herramientas de tipado

Trabajando con Jasmine en el frontend

11

Profundizaci贸n en SpyOn: Comandos m谩s utilizados y c贸mo ponerlos a prueba

12

Configurar un ambiente de trabajo para trabajar con el framework jasmine

13

Configurar Jasmine utilizando Node.js

14

Primer set de pruebas con Jasmine

15

Diccionario Jasmine

Probando Nodejs apps con Jasmine

16

Introducci贸n al m贸dulo de testing del lado del servidor

17

Configurando el proyecto Jasmine utilizando npm

18

Agregando Plugins a Jasmine

19

Configurando nuestro reporter

20

Pruebas en el servidor: Verificando un status 200 en GET

21

Pruebas en el servidor: Probando el m茅todo GET y Reto con FindByID

22

Pruebas en el servidor: Probando el m茅todo POST (request to server)

23

Pruebas en el servidor: Probando el m茅todo POST (request to PDF)

Probando Angular apps con Jasmine

24

Tipos de pruebas

25

Pruebas en el frontend: Probando el componente principal (App)

26

Configurando los ciclos de vida

27

Creando las pruebas del formulario: Configuraci贸n

28

Creando las pruebas necesarias para un formulario. (Primeras pruebas)

29

Probando el caso de exito al guardar un elemento en el servidor.

30

Trabajando con event emitters

31

Testeando ngZone y navegaci贸n.

32

Configurando el TestBed de el componente PINs

33

Creando un espia sobre el objecto window

Pruebas de integraci贸n de Angular apps con Jasmine

34

Ejecutando funciones a trav茅s de eventos en el template

35

Probando la navegaci贸n

36

Probando servicios con HTTP

37

Completando las pruebas del servicio HTTP

38

Cierre del curso

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Unit Testing para MEAN con Jasmine

Curso de Unit Testing para MEAN con Jasmine

Cristian Daniel Marquez Barrios

Cristian Daniel Marquez Barrios

Configurando el proyecto Jasmine utilizando npm

17/38
Recursos

La diferencia entre dependencies (dependencias) y devDependencies (dependencias de desarrollo) es que las dependencias normales las instalamos siempre, en desarrollo o en producci贸n. En cambio, las devDependencies son m贸dulos que solo se vamos a necesitar en la etapa de desarrollo, no en producci贸n.

Algunos buenos ejemplos de dependencies que se requerir铆an en tiempo de ejecuci贸n son, por ejemplo, React, Redux, Express y Axios.

Algunos buenos ejemplos de cu谩ndo instalar devDependencies ser铆an Nodemon, Babel, ESLint y marcos de prueba como Chai, Mocha, Enzyme, entre otros.

Aportes 12

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

El repositorio de Cristian se encuentra ac谩: https://github.com/xthecapx/mean

Una vez clonen el repositorio ejecutan npm install para instalar las dependencias del proyecto.
Luego instalan Jasmine npm install jasmine --save-dev

Luego comenzar los archivos de configuraci贸n de Jasmine: ./node_module/jasmine/bin/jasmine.js init

Si te genera fallo el npm run test:server coloca dentro del package.json la palabra node despu茅s la ruta del jasmine as铆

鈥渟cripts鈥: {
鈥渘g鈥: 鈥渘g鈥,
鈥渟tart鈥: 鈥渘g build && node ./server/bin/www鈥,
鈥渂uild鈥: 鈥渘g build鈥,
鈥渢est鈥: 鈥渘g test鈥,
鈥渢est:server鈥: 鈥渘ode ./node_modules/jasmine/bin/jasmine.js鈥,
鈥渓int鈥: 鈥渘g lint鈥,
鈥渆2e鈥: 鈥渘g e2e鈥
},

Si tienen alg煤n problema para inicializar el proyecto:
node node_modules/jasmine/bin/jasmine.js init

Si est谩n en windows 10 y llegaron al minuto 3:20 y no les funciona el jasmine.js init debe usar el siguiente comando:
node node_modules/jasmine/bin/jasmine init

Si a alguien le interesa, cree este repositorio donde configure Typescript del lado del Backend y Frontend:
https://github.com/elberthAgreda/docker-MEAN

Si les ocurre que tienen problemas ejecutando las pruebas tanto para el server como para el cliente pueden actualizar las dependencias del proyecto angular a la versi贸n mas reciente. Este proceso puede ser un poco complejo y aunque algunos podran pensar en crear el proyecto desde cero y agregar los archivos del proyecto original del profesor, no es tarea sencilla. Para este fin he creado un repositorio con el proyecto base y actualizado a angular 11 con los cambios pertinentes al codigo para que siga funcionando. Pueden ver y clonar el repositorio desde esta url:
https://github.com/designeromega/mean

Ya para correr jasmine. js se utiliza el siguiente comando node node_modules/jasmine/bin/jasmine.js, esto se debe a que estamos corriendo jasmine dentro del proyecto.

Por si algui茅n tambi茅n ha tenido problemas con las dependencias, aqui les paso mi package.json para que puedan ver las dependencias que me estan funcionando con 茅xito!

Aqu铆 les dejo mi repositorio tambi茅n si les sirve descargar directamente. la actualizaci贸n esta en la rama feature/learn-testing

Repositorio:
https://github.com/BRYANALX/mean/tree/feature/learn-testing

Clonar desde linea de comandos.
git clone-b feature/learn-testing https://github.com/BRYANALX/mean.git

package.json

{
  "name": "pin",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng build && node ./server/bin/www",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/cdk": "^7.3.7",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/forms": "~8.2.14",
    "@angular/http": "~7.0.0",
    "@angular/material": "^7.3.7",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "body-parser": "^1.19.0",
    "cheerio": "^1.0.0-rc.3",
    "core-js": "^2.6.11",
    "express": "^4.17.1",
    "hammerjs": "^2.0.8",
    "http-errors": "^1.7.3",
    "mongoose": "^5.9.18",
    "morgan": "^1.10.0",
    "request": "^2.88.2",
    "request-promise-native": "^1.0.8",
    "rxjs": "~6.5.5",
    "serve-favicon": "^2.5.0",
    "url-parse": "^1.4.7",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.24",
    "@angular/cli": "~8.3.27",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "^2.0.8",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.5.0",
    "jasmine": "^3.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.6",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "^5.4.4",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.5.3"
  }
}

Para inicializar Jasmine ahora se usa: npx jasmine init

Uff super atorado con la versi贸n de node para correr el proyecto. intalere angular 9 y haber como me va!!

Primero debemos clonar el repositorio con el c贸digo del backend y frontend con el comando git clone https://github.com/xthecapx/mean.git, instalamos las dependencias con el comando npm install.
Instalamos Jasmine como dependencia de desarrollo con el comando npm install jasmine --save-dev e inicializaremos Jasmine con el comando node ./node_modules/jasmine/bin/jasmine.js init.
Para ejecutar nuestras pruebas de una manera m谩s pr谩ctica, a帽adimos el script "test:server": "node ./node_modules/jasmine/bin/jasmine.js" en el arreglo de scripts de nuestro package.json. Ahora podremos ejecutar nuestras pruebas con solamente ejecutar npm run test:server desde la terminal.

Si al momento de actualizar las dependencias se encuentran con un error que dice

 npm ERR! Could not resolve dependency: npm ERR! peer [email protected]">=4.0 <4.2" from @angular/compiler-cli@11.2.6```

instalen primero la versin de typescript que recomienda el error anterior, en mi caso use este c贸digo

npm install [email protected]鈥4.0.2鈥 --legacy-peer-deps