У меня есть следующий код как часть сервиса:
return this.httpClient.get<Country[]>('http://localhost:8080/countries');
Он проходит модульный тест с поддельными значениями.Однако при использовании в функции ngOnInit () она не присваивает соответствующие значения переменной.
this.supportedCountriesFetcherService.fetchSupportedCountries().subscribe((data) => (this.supportedCountries = data));
Я тестировал с почтальоном, а localhost возвращает соответствующий json.Если бы я регистрировал данные о подписке, а не назначал их, не было бы возвращенных записанных данных (фактически, либо был бы добавлен пустой журнал, либо его вообще не было).
Как я могу решить эту проблему?
Редактировать:
Код, связанный с обслуживанием (без интерфейсов):
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class SupportedCountriesFetcherService {
public fetchSupportedCountries(): Observable<Country[]> {
return this.httpClient.get<Country[]>('http://localhost:8080/countries');
}
constructor(private httpClient: HttpClient) { }
}
Код, связанный с компонентом:
import { Component, OnInit } from '@angular/core';
import { Country, SupportedCountriesFetcherService } from 'src/app/services/supported-countries-fetcher.service';
@Component({
selector: 'app-input-form',
templateUrl: './input-form.component.html',
styleUrls: ['./input-form.component.css']
})
export class InputFormComponent implements OnInit {
private supportedCountries: Country[];
constructor(private supportedCountriesFetcherService: SupportedCountriesFetcherService) { }
ngOnInit() {
this.supportedCountriesFetcherService.fetchSupportedCountries()
.subscribe((data) => this.supportedCountries = data, (error) => console.log(error));
}
}