Я работаю над модульным тестированием для сервисного уровня.Но я получаю сообщение об ошибке: DataService обнаружил исключение объявления FAILED data.service.ts
data: Data[];
private url = "http://localhost:8080/getdata";
constructor(
private http: HttpClient,
private processHTTPMsgService: ProcessHTTPMsgService
) {}
getData(): Observable<Data[]> {
return this.http
.get<Data[]>(this.url)
.pipe(map(data => (this.data = data)))
.pipe(catchError(this.processHTTPMsgService.handleError));
}
data.service.spec.ts
describe("DataService", () => {
let service: DataService;
let httpMock: HttpTestingController;
beforeEach(
() =>
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, HttpClientModule],
providers: [DataService,ProcessHTTPMsgService]
}),
(service = TestBed.get(DataService))(
(httpMock = TestBed.get(HttpTestingController))
)
);
afterEach(() => {
httpMock.verify();
});
describe("should retrieve data from the API", () => {
const dummyPosts: Data[] = [
{
effectivefrom: "string",
effectiveto: "string",
externalname: "string",
id: 1,
type: "string",
name: "string",
processstep: 1,
status: "string"
}
];
service.getData().subscribe(data => {
expect(data.length).toBe(1);
expect(data).toEqual(dummyPosts);
});
const request = httpMock.expectOne('http://localhost:8080/getdata');
expect(request.request.method).toBe("GET");
request.flush(dummyPosts);
});
describe("should be created", () => {
const service: DataService = TestBed.get(DataService);
expect(service).toBeTruthy();
});
});
полученная ошибкаis
DataService обнаружил исключение объявления
Ошибка: невозможно вызвать Promise.then из теста синхронизации.
Заранее спасибо!