Я просматриваю несколько статей о модульном тестировании и нашел несколько довольно полезных примеров. Большинство примеров, с которыми я сталкиваюсь, похоже, являются модульным тестированием функции, которая делает что-то с Angular HttpClient
, и большинство выглядит так:
it('should return an Observable<User[]>', () => {
const dummyUsers = [
{ login: 'John' },
{ login: 'Doe' }
];
service.getUsers().subscribe(users => {
expect(users.length).toBe(2);
expect(users).toEqual(dummyUsers);
});
const req = httpMock.expectOne(`${service.API_URL}/users`);
expect(req.request.method).toBe("GET");
req.flush(dummyUsers);
});
https://medium.com/netscape/testing-with-the-angular-httpclient-api-648203820712
Это означает, что .getUsers()
возвращает наблюдаемое. Однако в моем заявлении я не возвращаю наблюдаемое. Почти все мои HttpClient
звонки похожи на это:
async getCurrentUser(): Promise<UserInfo> {
return await this._httpClient.get(`/api/me`).toPromise();
}
Как вы проводите модульное тестирование функции, вызывающей HttpPost или HttpGet в Карме?
Попытка:
it('should get current user', async () => {
const result = service.getCurrentUser();
console.log('RESULT', result);
const req = httpMock.expectOne(`/api/me`);
const test = req.flush({test: 'ing'});
console.log('REQUEST', test);
expect('a').toEqual('a');
});