Angular TestBed
Clase 10 de 25 • Curso de Angular: Unit Testing para Servicios
Contenido del curso
Clase 10 de 25 • Curso de Angular: Unit Testing para Servicios
Contenido del curso
Cesar Elías Armendariz Ruano
Leandro Ariel Bustamante
Jonas Talavera
Víctor Rolack
Angular tiene un herramienta que nos permite hacer pruebas en su propio entorno.
esto se refeire al testBed que nos permite crear una instancia del serivicio o componente que se va a probar y a partir de ahi todo se mantiene de la misma manera.
tomando el ejemplo a valueService
value.service.spec.ts
import { TestBed } from '@angular/core/testing'; describe('ValueService', () => { let service: ValueService; beforeEach(() => { TestBed.configureTestingModule({ providers: [ ValueService ] }); service = TestBed.inject(Value); });
Seria bueno un ejemplo concreto de que podia fallar si se usa el servicio creandolo o usando esa herramienta de TestBed. No logro ver las ventajas de una modo sobre el otro, solo que uno conlleva mas lineas de codigo.
Hola, al ver la definición de TestBed me surge una pregunta. La declaración se hace dentro del método beforeEach, ¿no tendría más sentido que se haga dentro del beforeAll para evitar que se configure múltiples veces? Sobre todo pensando en casos más complejos donde se configuren múltiples servicios o elementos que en tiempo supongan una penalización para ejecutar las pruebas.
Entiendo que también puede haber casos en los que se requiera una nueva instancia del servicio por ejemplo, si el servicio guarda estado y no queremos que tenga efectos en otros test.
¿Qué opinan?
Está bien que sea un beforeEach en el contexto de pruebas unitarias, ya que no quiero que las pruebas puedan verse afectadas entre sí al usar la misma instancia. Ahora quizás en otros tipos de testing podría verse más útil inicializarlo una vez para todos los tests.