Я работаю над тестовым угловым приложением. (Не спрашивайте, почему, это то, чего хочет клиент)
Ниже приведена спецификация, которую я не могу modify
или edit
.
it('should get results', fakeAsync(
inject(
[XHRBackend, NewsService ],
(mockBackend: MockBackend, newsService: NewsService) => {
const expectedUrl = 'https://api.nytimes.com/svc/topstories/v2/home.json?api-key=315a5a51483b469a918246dc2753b339';
mockBackend.connections.subscribe((connection : MockConnection) => {
expect(connection.request.method).toBe(RequestMethod.Get);
expect(connection.request.url).toBe(expectedUrl);
connection.mockRespond(new Response(
new ResponseOptions({ body: mockResponse })
));
});
newsService.getSectionNews('home')
.subscribe( (res: any) => {
expect(res).toEqual(mockResponse);
});
})
));
Итак, основываясь на спецификацииМне нужно написать свой код переднего конца.
Так вот, что я написал,
import { Http } from '@angular/http';
constructor(private http: Http) {}
getSectionNews(sectionName: string): any {
// fetch news of that sectionName
// return this.mockResponse;
const expectedUrl = 'https://api.nytimes.com/svc/topstories/v2/home.json?api-key=315a5a51483b469a918246dc2753b339';
return this.http.get(expectedUrl).subscribe(res => res);
}
Но во время выполнения тестового примера я получаю эту ошибку:
TypeError: newsService.getSectionNews (...). Подписка не является функцией
пожалуйста, скажите мне, что я делаю здесь неправильно.
Я хотел пройти тестовый набор.
ОБНОВЛЕНИЕ
После обновления моей спецификации сервиса.
getSectionNews(sectionName: string): Observable<any> {
const expectedUrl = `https://api.nytimes.com/svc/topstories/v2/${sectionName}.json?api-key=315a5a51483b469a918246dc2753b339`;
return this.http.get(expectedUrl);
}
Теперь я получаю следующее сообщение об ошибке:
Ожидаемый ответ со статусом: ноль ноль для URL: ноль для равных Objectt ({status: 'OK', copyright: 'C ...