модульный тест с жасмином "ошибка была брошена в afterAll" - PullRequest
0 голосов
/ 18 октября 2018

Я просто проверяю, создан компонент или нет.Ниже мой файл спецификаций

import { async, ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing';
import { CUSTOM_ELEMENTS_SCHEMA, DebugElement } from '@angular/core';
import { RouterTestingModule } from '@angular/router/testing';
import { MatTableModule } from '@angular/material';
import { HttpClientModule, HttpXhrBackend } from '@angular/common/http';
import { MockBackend } from '@angular/http/testing';
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';

import { ReleaseListComponent } from './release-list.component';
import { ReleaseService } from '../release.service';

describe('ReleaseListComponent', () => {
  let component: ReleaseListComponent;
  let fixture: ComponentFixture<ReleaseListComponent>;

  beforeEach(() => {
    TestBed.configureTestingModule({
      schemas: [CUSTOM_ELEMENTS_SCHEMA],
      imports: [RouterTestingModule, MatTableModule, HttpClientModule ],
      declarations: [ReleaseListComponent],
      providers: [ReleaseService]
    })
      .compileComponents();
  });

  beforeEach(() => {
    fixture = TestBed.createComponent(ReleaseListComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeDefined();
  });

Мой компонент

import { Component, OnInit, ViewChild } from '@angular/core';
import { ReleaseService } from '../release.service';
import { MatPaginator, MatSort, MatTableDataSource } from '@angular/material';

@Component({
  selector: 'bw-release-list',
  templateUrl: './release-list.component.html'
})
export class ReleaseListComponent implements OnInit {
  title = 'Release notes';
  displayedColumns = ['title'];
  dataSource;

  @ViewChild(MatPaginator) paginator: MatPaginator;
  @ViewChild(MatSort) sort: MatSort;

  constructor( private releaseNotes: ReleaseService ) { }

  ngOnInit() {
    this.releaseNotes.getReleaseNotes()
      .subscribe(data => {
        this.dataSource = new MatTableDataSource(data.results);
        this.dataSource.paginator = this.paginator;
        this.dataSource.sort = this.sort;
      });
  }
  applyFilter(filterValue: string) {
    filterValue = filterValue.trim();
    filterValue = filterValue.toLowerCase();
    this.dataSource.filter = filterValue;
  }
}

Я получаю An error was thrown in afterAll Я пытаюсь отлаживать в течение нескольких часов, но безуспешно.

Я пробовал beforeEach в async и sync, я также импортировал весь файл зависимостей в файл спецификации.по-прежнему выбрасывает ту же ошибку.

, пожалуйста, предложите мне, как решить эту проблему.

1 Ответ

0 голосов
/ 18 октября 2018

Вы, кажется, импортируете HttpClientTestingModule, но затем используете:imports: [RouterTestingModule, HttpClientModule ],.Это должно быть HttpClientTestingModule

Затем, запустите тест в браузере и откройте console, вы можете увидеть некоторые дополнительные проблемы в консоли браузера, которые не отображаются при запуске только в командной строке cmd.

например, у меня возникла проблема с картой источника, и мне пришлось отключить ее для моего теста, используя ng test --source-map=false

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