У меня проблема с угловым тестом.Я не знаю, если это ошибка или я делаю что-то не так.
У меня есть 2 компонента.Тот, который использует обещания в ngOnInit, и тот, который полностью пуст.
Компонент, использующий обещания, выглядит следующим образом:
import {Component, OnInit} from '@angular/core';
import {User, UserManager} from 'oidc-client';
@Component({
selector: 'app-test',
templateUrl: './test-promise.component.html',
styleUrls: ['./test-promise.component.css']
})
export class TestPromiseComponent implements OnInit {
private readonly userManager: UserManager;
public async ngOnInit(): Promise<any> {
return this.getDataStore('', '', '');
}
public getDataStore(url: string, key: string, keyType: string): Promise<any> {
return this.getToken();
}
public getToken(): Promise<string> {
return this.getUser().then(user => {
return user.access_token;
});
}
public getUser(): Promise<User> {
return this.userManager.getUser();
}
}
В операторах импорта вы можете видеть, какие у меня зависимости и чтоЯ использую Oidc Client.
Мой другой компонент выглядит следующим образом (просто пустой):
import { Component } from '@angular/core';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent {
}
Тестовая спецификация для обоих компонентов просто следует стандартной спецификации при создании нового компонента,вот так для компонента, который использует обещания:
describe('TestPromiseComponent', () => {
let component: TestPromiseComponent;
let fixture: ComponentFixture<TestPromiseComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
TestPromiseComponent
]
}).compileComponents().then();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TestPromiseComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
fit('should create', () => {
expect(component).toBeTruthy();
});
});
Это моя установка.Теперь очень странно, что когда я запускаю тест, то TestComponent дает сбой - даже если на самом деле происходит сбой TestPromiseComponent.Смотрите результаты здесь:
Так что теперь для большого вопроса: Почему TestComponent терпит неудачу, даже если это фактически TestPromiseComponent, которыйне получается?
Может кто-нибудь объяснить мне:)
Редактировать 1:
Вот тест для TestComponent:
describe('TestComponent', () => {
let component: TestComponent;
let fixture: ComponentFixture<TestComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
TestComponent
]
}).compileComponents().then();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TestComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
fit('should create', () => {
expect(component).toBeTruthy();
});
});
Редактировать 2: Я использую следующие версии кармы и жасмина:
- "jasmine-core": "~ 2.99.1",
- "jasmine-spec-reporter": "~ 4.2.1",
- "карма": "~ 1.7.1",
- "karma-chrome-launcher": "~ 2.2.0 ",
- " Карма-охват-Стамбул-репортер ":" ~ 2.0.0 ",
- " Карма-Жасмин ":" ~ 1.1.1 ",
- "Карма-Жасмин-HTML-репортер": "^ 0.2.2",