2016-04-28 20 views
0

So habe ich eine Funktion, um alle Tabs von einer bestimmten Seite zu entfernen. In dieser Funktion gibt es eine Variable, die die Arbeit ausführt. Ich muss einen Dummy-Wert an diese Variable übergeben, damit der Wert übergeben und die Funktion ausgeführt wird.Schreiben React TestUtils Testfall für Funktion ohne Parameter

Wie schreibe ich Testfall mit ReactJS TestUtils für die folgenden.

_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); 
}); 

}

Bisher habe ich diese

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

    educate._removeAllTabbing(accordionTitleAnchors); 
}); 

Auch wird es toll, wenn jemand ein paar docs/Artikel zum Testen verschiedene Frontend-Szenarien gemeinsam nutzen können.

Antwort

0

So hat RenderIntoDocument nicht funktioniert. :(fragen, warum?

Hier ist der Code, der für mich arbeitet.

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'); 
     }); 
    }); 

müssen Wege, um herauszufinden, Navigations Teil der Anwendung Front-End zu testen