В моем приложении Angular я часто использую компоненты datepicker и timepicker из ngx-bootstrap .
Они отлично работают, но, видимо, я не могу их проверить. Проблема в том, что когда мой тестовый пример запущен, эти компоненты еще не инициализированы:
Я установил точку останова в первой строке моего теста.
Когда тестовый пример завершается, я вижу, что компоненты datepicker и timepicker правильно инициализированы:
Мой код следующий:
describe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
MyComponent,
// ...
],
imports: [
BsDatepickerModule.forRoot(),
TimepickerModule.forRoot(),
// ...
],
providers: [
// ...
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
fixture.autoDetectChanges(true);
});
it('some expectation here', () => {
// whatever I put here, at this line the datepicker and timepicker will NOT be initialised
});
});
как мне запустить тестовый набор ПОСЛЕ того, что компоненты datepicker и timepicker были инициализированы?
EDIT
Я провел больше расследований, вопрос о [(ngModel)]="time"
элемента <timepicker>
в основном он запускается только ПОСЛЕ моего выхода из тестового примера.
как я могу запустить его вручную?
Я пытался с timepickerElement.dispatchEvent(new Event('input'));
, но он не работает.
также пытался fixture.detectChanges()
, fakeAsync
+ tick()
и т. Д., Но не смог решить проблему.