2016-04-28 13 views
0

Так что у меня есть функция, чтобы удалить все табуляции с определенной страницы. В этой функции объявляется переменная, которая выполняет эту работу. Мне нужно передать фиктивное значение этой переменной, чтобы значение передавалось и выполнялась функция.Написание теста TestUtils для функции без параметров

Как написать тестовый пример с использованием ReactJS TestUtils для следующего.

_removeAllTabbing() { 
const accordionTitleAnchors = [ 
    document.getElementById('accordion-panel-1').firstChild, 
    document.getElementById('accordion-panel-2').firstChild, 
    document.getElementById('accordion-panel-3').firstChild, 
    document.getElementById('accordion-panel-4').firstChild, 
    document.getElementById('accordion-panel-5').firstChild 
]; 

_.each(accordionTitleAnchors, accordionTitleAnchor => { 
    this._removeTabbing(accordionTitleAnchor); 
}); 

}

До сих пор у меня есть этот

xit('should call _removeAllTabbing function',() => { 
    const educate = new EducateAccordion(); 
    const accordionTitleAnchors = TestUtils.scryRenderedDOMComponentsWithClass(this.component, 'panel-title');; 

    educate._removeAllTabbing(accordionTitleAnchors); 
}); 

Кроме того, это будет здорово, если кто-нибудь может поделиться некоторыми Docs/статьи для тестирования различных передок сценариев.

ответ

0

Так что renderIntoDocument не работал. :(Интересно, почему?

Вот код, который работает для меня.

it('should validate _removeAllTabbing function',() => { 
     const educate = new EducateAccordion(); 
     const activeKey = 1; 

     const dummyElement = document.createElement('div'); 

     for (let i = 1; i <= 5; i++) { 
      const temp = document.createElement('div'); 

      temp.setAttribute('id', 'accordion-panel-' + i); 

      const temp2 = document.createElement('div'); 

      temp2.setAttribute('class', 'panel-title'); 
      temp2.setAttribute('role', 'tablist'); 

      temp.appendChild(temp2); 
      dummyElement.appendChild(temp); 
     } 

     document.body.appendChild(dummyElement); 

     educate._removeAllTabbing(); 

     this.accordionDummy = ReactDOM.findDOMNode(dummyElement); 

     this.accordionTitleAnchors = this.accordionDummy.getElementsByClassName('panel-title'); 

     _.each(this.accordionTitleAnchors, (item) => { 
      expect(item.getAttribute('tabIndex')).to.equal('-1'); 
     }); 
    }); 

Необходимо выяснить способы тестирования навигационной части приложения переднего конца