Ошибка тестирования угловых 5 и 6: не удалось загрузить сводку для директивы AppComponent - PullRequest
0 голосов
/ 29 мая 2018

После запуска ng test я получаю сообщение об ошибке:

Error: Illegal state: Could not load the summary for directive AppComponent.

Я не уверен, почему я получаю эту ошибку, так как я ссылаюсь и объявляю AppComponent.

Это мой app.component.spec.ts

import { ComponentFixture, TestBed } from "@angular/core/testing";
import { NO_ERRORS_SCHEMA } from "@angular/core";
import { Router } from "@angular/router";
import { ProjectService } from "../../shared/service/project/project.service";
import { AppComponent } from "./app.component";

describe("AppComponent", () => {
    let comp: AppComponent;
    let fixture: ComponentFixture<AppComponent>;

    beforeEach(() => {
        const routerStub = {
            navigate: () => ({})
        };
        const projectServiceStub = {
            GetActiveProject: () => ({
                name: {}
            })
        };
        TestBed.configureTestingModule({
            declarations: [ AppComponent ],
            schemas: [ NO_ERRORS_SCHEMA ],
            providers: [
                { provide: Router, useValue: routerStub },
                { provide: ProjectService, useValue: projectServiceStub }
            ]
        });
        fixture = TestBed.createComponent(AppComponent);
        comp = fixture.componentInstance;
    });

    it("can load instance", () => {
        expect(comp).toBeTruthy();
    });

    describe("ngOnInit", () => {
        it("makes expected calls", () => {
            const routerStub: Router = fixture.debugElement.injector.get(Router);
            const projectServiceStub: ProjectService = fixture.debugElement.injector.get(ProjectService);
            spyOn(routerStub, "navigate");
            spyOn(projectServiceStub, "GetActiveProject");
            comp.ngOnInit();
            expect(routerStub.navigate).toHaveBeenCalled();
            expect(projectServiceStub.GetActiveProject).toHaveBeenCalled();
        });
    });

});

Почему выдается эта ошибка и как я могу исправить эту ошибку?

РЕДАКТИРОВАТЬ: я использую Angular CLIфайлы по умолчанию tsconfig и tsconfig.spec.Тем временем я обновился до Angular 6, получаю ошибку sam.Даже создание нового проекта с чистыми конфигурационными файлами и замена папки src не помогли устранить ошибку.

1 Ответ

0 голосов
/ 31 мая 2018

Сочетание этих параметров конфликтует:

    declarations: [ AppComponent ],
    schemas: [ NO_ERRORS_SCHEMA ],

AppComponent ссылается на другой компонент, который модуль тестового стенда не смог найти.Схема без ошибок скрывала фактическую ошибку, которая была в AppComponent, но показывала ошибку, что сам AppComponent, поскольку он не мог быть правильно загружен.

Чтобы решить эту проблему, вы можете убедиться, что каждый дочерний компонент являетсяссылаться или импортировать весь модуль как таковой:

    import: [ AppModule ],
...