Actualmente 2024 como se prueban los ActivatedRoute ya que en la documentacion no veo el "Stub"?

Pregunta de la clase:
Pruebas a los parámetros
Vanessa Paola Oliveros Padron

Vanessa Paola Oliveros Padron

Pregunta
student
hace 2 años

Actualmente 2024 como se prueban los ActivatedRoute ya que en la documentacion no veo el "Stub"?

2 respuestas
    José Luis Jiménez

    José Luis Jiménez

    student
    hace 2 años

    Por lo que veo ya no se suele usar el "Stub" sino una nueva estrategia llamada RouterTestingHarness..

    Luis Jose Marquez Gonzalez

    Luis Jose Marquez Gonzalez

    student
    hace un año

    Puedes utilizar el

    RouterTestingHarness. Dejo
    un ejemplo:

    import { provideLocationMocks } from '@angular/common/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { provideRouter } from '@angular/router'; import { RouterTestingHarness } from '@angular/router/testing'; import { mockObservable } from '../../../testing'; import { generateOneProduct } from '../../models/product.mock'; import { ProductsService } from '../../services/product.service'; import { ProductDetailComponent } from './product-detail.component'; fdescribe('ProductDetailComponent', () => { let component: ProductDetailComponent; let fixture: ComponentFixture<ProductDetailComponent>; let productService: jasmine.SpyObj<ProductsService>; let location: jasmine.SpyObj<Location>; beforeEach(async () => { const productServiceSpy = jasmine.createSpyObj('ProductsService', ['getOne']) const locationSpy = jasmine.createSpyObj('Location', ['back']); await TestBed.configureTestingModule({ imports: [ ProductDetailComponent ], providers: [ provideRouter([ { path: 'products/:id', component: ProductDetailComponent, }, ]), provideLocationMocks(), { provide: ProductsService, useValue: productServiceSpy }, { provide: Location, useValue: locationSpy } ] }) .compileComponents(); }); beforeEach(async() => { fixture = TestBed.createComponent(ProductDetailComponent); const productId = '1'; const harness = await RouterTestingHarness.create(); component = await harness.navigateByUrl(`products/${productId}`, ProductDetailComponent); productService = TestBed.inject(ProductsService) as unknown as jasmine.SpyObj<ProductsService>; location = TestBed.inject(Location) as unknown as jasmine.SpyObj<Location>; const productMock = {...generateOneProduct(), id: productId}; productService.getOne.and.returnValue(mockObservable(productMock)); fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); });
Curso de Angular: Unit Testing para Rutas

Curso de Angular: Unit Testing para Rutas

Escribe pruebas unitarias a rutas en Angular para asegurar la navegación correcta y protección del acceso mediante guardianes. Implementa pruebas de integración utilizando RouterTestingModule para validar el comportamiento completo en un entorno de CI/CD.

Curso de Angular: Unit Testing para Rutas
Curso de Angular: Unit Testing para Rutas

Curso de Angular: Unit Testing para Rutas

Escribe pruebas unitarias a rutas en Angular para asegurar la navegación correcta y protección del acceso mediante guardianes. Implementa pruebas de integración utilizando RouterTestingModule para validar el comportamiento completo en un entorno de CI/CD.