У меня есть сервис в Angular, который принимает 3 параметра. [У меня были проблемы с HttpParams при использовании append (), поэтому я просто использовал параметр fromObject в конструкторе. Может выглядеть странно, но пока это работает.]
Сервисный код
getData(paramOne: string, paramTwo, string: paramThree: number): Observable<Object[]> {
const obj = {};
obj['p1'] = paramOne;
obj['p2'] = paramTwo;
obj['p3'] = paramThree;
let params = new HttpParams({fromObject; obj});
return this.httpClient.get<Object[]>('myurl', {params: params})
}
Это работает. На стороне сервера я могу получить параметры из запроса. Без вопросов.
Однако в модульном тесте с HttpMock () у меня возникают проблемы.
// httpMock = new TestBed.get(HttpTestingController)
it('should get data', (done) => {
const data = {};
// populate simulated return data
service.getData("param1", "param2", 3).subscribe(data => {
// tests here
});
const req = httpMock.expectOne('myurl?p1=param1&p2=param2&p3=3');
expect(req.request.method).toBe('GET');
req.flush(data);
httpMock.verify();
});
Сбой вызова httpMock.epectOne ()
Expected one matching request for criteria "call to api", found none.
I ' мы пробовали это с нулевым и 1 параметрами, и шаблон работает. Я проверил на опечатки и еще много чего. Утомительно ... что-то, что я пропускаю, или способ поближе взглянуть на то, к чему фактически обращается URL?