Estoy tratando de probar un método de un servicio que realiza una solicitud HTTP POST. El caso es que Jasmine está arrojando el siguiente error:
Lista de fallas de especificaciones de Jasmine:
Error: Expected one matching request for criteria "Match URL: http://localhost:8080/api/members/1/skills", found none.¿Alguien puede explicarme qué está mal? En realidad, la URL es correcta, así que no sé qué está pasando.
Este es el método que quiero probar:
postSkillforMember(memberId: string, skillFormBody: any, successCallback: Function, errorCallback: Function) { console.log(`${this._membersUrl}/${memberId}/skills`); this._http .post<Skill>(`${this._membersUrl}/${memberId}/skills`, skillFormBody, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), responseType: 'json', observe: 'body', }) .subscribe({ next: (value) => { this.newSkill = value; }, complete: () => { successCallback(this.newSkill); }, error: (error) => { catchError(this.handleError); errorCallback(error); } }); }Este es mi it en spec.ts:
it('Testing postSkillforMember() success', () => { const skillFormBody = { skill: { "id": '1', "skill": "" }, skillLevel: { "id": '1', "skillLevel": "" } } let successCb: boolean = false; mockSkillAddService.postSkillforMember(memberMockObject.fakeMember.id.toString(), skillFormBody, ()=>{ successCb = true }, ()=>{}); const req = mockHttpTestingController.expectOne(`http://localhost:8080/api/members/1/skills`); const expectedResponse = new HttpResponse({ status: 201, statusText: 'Created' }); req.event(expectedResponse); const msg = '201 Created'; req.flush(msg, { status: 201, statusText: 'Created' }); expect(successCb).toBeTruthy(); });Gracias de antemano por su ayuda, realmente lo aprecio!