Жасмин тест для элемента jquery - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть функция, чтобы написать модульный тест:

  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. Как я могу изменить его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...