Я тестирую компонент, и это то, что у меня есть:
describe('Component: nav', () => {
beforeEach(() => addProviders([
provide(UserService, {useClass: MockUserService}),
NavComponent
]));
it('should have a property \'firstName\' with the value \'Crazypug\'',
async(inject([NavComponent], (component) => {
component.ngOnInit();
expect(component.firstName).toEqual('Crazypug')
}))
);
});
Это функция ngOnInit:
ngOnInit() {
this.userService.getFirstNameCall().subscribe(
data => {this.firstName = data.firstname; });
}
Когда я запускаю тест, я получаю:
Ожидаемый undefined равный 'Crazypug'
Как я могу позволить Жасмину ждать завершения функции ngOnInit? Я нашел некоторые решения на SO, но с давних времен (в angular2 сроки). Они были очень сложными или устаревшими.