Я пытаюсь использовать fakeAsync для тестирования компонента Angular 2, но переменная прибора не устанавливается. Фактически, вызов вызова обещания не вызывается. Вот код:Угловое тестирование с помощью fakeAsync
@Component({
template: '',
directives: [GroupBox, GroupBoxHeader]
})
class TestComponent {
expandedCallback() { this.expandedCalled = true; }
}
it('testing...', inject([TestComponentBuilder], fakeAsync((tcb) => {
var fixture;
tcb.createAsync(TestComponent).then((rootFixture) => {
fixture = rootFixture
});
tick();
fixture.detectChanges();
})));
Когда я запускаю этот код, я получаю:
Failed: Cannot read property 'detectChanges' of undefined TypeError: Cannot read property 'detectChanges' of undefined
Я не могу понять, почему обратный вызов не увольняет. В этом хранилище он отлично работает: https://github.com/juliemr/ng2-test-seed/blob/master/src/test/greeting-component_test.ts
Любые подсказки?
Примечание: Я использую ES6, Traceur, Angular 2 beta, Karma и Jasmine.
------ ОБНОВЛЕНИЕ ------
следует, репозиторий с неисправным тестом:
https://github.com/cangosta/ng2_testing_fakeasync
Похоже проблема с TestComponent. Если я удалю строку «директивы: [GroupBox]» из определения компонента, ошибка больше не возникает – cangosta
Кажется, что это ошибка в угловой структуре 2: https://github.com/angular/angular/issues/5601 – cangosta
Да https://github.com/juliemr/ng2-test-seed/blob/master/src/test/greeting-component_test.ts работает, потому что шаблон встроен –