У меня есть функция, чтобы написать модульный тест:
public refresh(): void {
this.closeAllPopups().subscribe(() => {
const refreshButton = $('.refresh').last();
if (refreshButton.length) {
refreshButton[0].click();
}
});
}
Интересно, как я могу установить $ ('. Refresh'). Last (). Длина не 0.
Мой юнит-тест 1, как показано ниже:
it('should click refresh button element', fakeAsync(() => {
spyOnProperty($('.refresh').last(), 'length').and.returnValue(1);
console.log($('.refresh').last());
spyOn(actions, 'closeAllPopups').and.returnValue(Observable.of(true));
spyOn($.fn, 'click');
actions.refresh();
tick();
expect($.fn.click).toHaveBeenCalled();
}));
Мой юнит-тест 2, как показано ниже:
it('should click refresh button element', fakeAsync(() => {
const button = document.createElement('div');
button.setAttribute('class', 'refresh');
console.log($('.refresh').last());
spyOn(actions, 'closeAllPopups').and.returnValue(Observable.of(true));
spyOn($.fn, 'click');
actions.refresh();
tick();
expect($.fn.click).toHaveBeenCalled();
}));
все юнит-тесты console.log($('.refresh').last())
display n.fn.init.length = 0. Как я могу изменить его?