Contenido del curso
Fundamentos de unit testing en Angular
Testing en servicios
Proyecto
Testing en consultas HTTP
Bonus
Próximos pasos
Angular TestBed
Contenido del curso
Angular TestBed
Cesar Elías Armendariz Ruano
EstudianteLeandro Ariel Bustamante
EstudianteJonas Talavera
EstudianteVíctor Rolack
EstudianteAngular 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.