DataService обнаружил исключение объявления FAILED-Angular Unit testing - PullRequest
1 голос
/ 12 марта 2019

Я работаю над модульным тестированием для сервисного уровня.Но я получаю сообщение об ошибке: 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 из теста синхронизации.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...