Skip to content

Instantly share code, notes, and snippets.

@Klerith
Last active June 28, 2024 23:42
Show Gist options
  • Save Klerith/ca4573d13844f53af3ff68846a238fc3 to your computer and use it in GitHub Desktop.
Save Klerith/ca4573d13844f53af3ff68846a238fc3 to your computer and use it in GitHub Desktop.
Angular 13+ Configure Jest Testing

Angular testing con JEST

  1. Remover cualquier referencia de Jasmine / Karma en el package.json
npm remove <karma karma-chrome-launcher...>
  1. Instalar Jest
npm install --save-dev jest jest-preset-angular @types/jest
  1. Crear el setup-jest.ts en la carpeta root del proyecto y el contenido es el siguiente
import 'jest-preset-angular/setup-jest';
  1. Agregar en el package.json, la configuración de Jest
"jest": {
    "preset": "jest-preset-angular",
    "setupFilesAfterEnv": [
      "<rootDir>/setup-jest.ts"
    ],
    "globalSetup": "jest-preset-angular/global-setup"
  }
  1. Configurar JEST en tsconfig.json y tsconfig.spec.json
"types": [
  "jest"
]
  1. Configurar los comandos para ejecutar las pruebas en el package.json
"test": "jest",
"test:watch": "jest --watchAll",
  1. Remover karma.config.js y el archivo test.ts
@rmontesdeoca7
Copy link

  1. también se puede añadir este útil comando
    "test:coverage": "jest --coverage"

@clopez1winsupply
Copy link

Para mi no funciona, recibo este error en Angular 15:
tatic { this.ctorParameters = () => [
^
SyntaxError: Unexpected token '{'

@jojuchatru1993
Copy link

Fernando no sé si te diste cuenta pero hay una configuración en el angular.json en el objeto test donde aún hay código de Karma, que se debería hacer en ese caso?

@M8-Babbage
Copy link

Fernando no sé si te diste cuenta pero hay una configuración en el angular.json en el objeto test donde aún hay código de Karma, que se debería hacer en ese caso?

Puedes eliminarlo, ya que está configurado para ser usado con ng test que lanzaría karma/jasmine.

@carlosbetan42
Copy link

@Klerith El curso de [Angular + Jest] de youtube ya no está en planes de continuarlo, ya sea ahí mismo o como un curso de pago?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment