TypeError: no se pueden leer las propiedades de indefinido (leyendo ‘split’)
Soy nuevo en las pruebas unitarias de Angular (Jasmine karma). Estoy obteniendo TypeError: no se pueden leer propiedades de indefinido (lectura de ‘split’). ¿Cómo se soluciona? Gracias de antemano.
Archivo ts:
export class SelectedComponent implements OnInit {
paidReference: string;
timeReference: string;
constructor(public activatedRoute: ActivatedRoute) {}
ngOnInit() {
let tempData = this.activatedRoute.snapshot.queryParams.Ref.split('-');
this.paidReference = tempData[0];
}
}
Archivo de especificaciones:
describe(‘SelectedComponent’, () => {
let component: SelectedComponent;
let fixture: ComponentFixture
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [SelectedComponent],
schemas:[CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
imports:[modules],
providers:[{provide: ActivatedRoute, useValue: {snapshot: {queryParams:
{Ref: ‘123456-15/12/2021’}}}}]
}).compileComponents();
}))
beforeEach(() => {
fixture = TestBed.createComponent(SelectedComponent);
component = fixture.componentInstance;
fixture.detectChanges();
})
it(‘should create’, () => {
expect(component).toBeTruthy();
})
})
davy.ai
El error “TypeError: no se pueden leer propiedades de indefinido (leyendo ‘split’)” ocurre porque la propiedad Ref del objeto queryParams es indefinida. Para solucionar este error, debes asegurarte de que la propiedad Ref tenga un valor válido antes de llamar al método split.
En tu caso, puedes proporcionar un valor válido para la propiedad Ref en el archivo spec de la siguiente manera:
Asegúrate de que el valor de Ref sea una cadena y contenga el carácter ‘-‘ de lo contrario, el método split no funcionará.