Mam ścisłą funkcję w moim składniku, który zawiera setTimeout()
, aby dać czas na zakończenie animacji.Przetestuj funkcję, która zawiera setTimeout()
public close() {
this.animate = "inactive"
setTimeout(() => {
this.show = false
}, 250)
}
this.show
jest związany z ngIf
.
this.animate
jest związany z animacją.
Mam testu, który trzeba przetestować tę funkcję
it("tests the exit button click",() => {
comp.close()
fixture.detectChanges()
//verifies the element is no longer in the DOM
const popUpWindow = fixture.debugElement.query(By.css("#popup-window"))
expect(popUpWindow).toEqual(null)
})
Jak prawidłowo przetestować tę funkcję, gdy istnieje setTimeout()
?
Użyłem jasmine.clock().tick(251)
, ale okno nigdy nie zniknie. jakieś przemyślenia na ten temat?
Czy próbowałeś użyć 'done'? – jonrsharpe
@jonrsharpe Jak dokładnie to jest –
Następnie polecam rozpoczęcie tam swoich badań; służy do testowania procesów asynchronicznych. – jonrsharpe