2014-06-10 4 views
8

मैं परीक्षण utils प्रतिक्रिया का उपयोग कर क्लिक ईवेंट अनुकरण करने में सक्षम था, लेकिन मैं mouseenter घटनाओंप्रतिक्रिया टेस्ट Utils का उपयोग कर mouseenter घटना अनुकरण नहीं किया जा सका

मैं नमूना घटक जोड़ा अनुकरण नहीं कर सकता है और यह इस समस्या को दिखाने के लिए jsfiddle में परीक्षण http://jsfiddle.net/kirana/Uf4e2/2/

var Events = React.createClass({ 
    getInitialState: function() { 
     return { 
      event: '' 
     }; 
    }, 
    clickHandler: function() { 
     this.setState({ 
      event: 'click' 
     }); 
    }, 
    mouseEnterHandler: function() { 
     this.setState({ 
      event: 'mouseenter' 
     }); 
    }, 
    render: function() { 
     return React.DOM.div(null, React.DOM.button({ 
      ref: 'button', 
      onClick: this.clickHandler, 
      onMouseEnter: this.mouseEnterHandler 
     }, 'click or mouseenter'), React.DOM.div(null, this.state.event)); 
    } 
}); 


var ReactTestUtils = React.addons.TestUtils; 

describe('Events', function() { 
    it('should have click event state', function (done) { 
     var events = Events(); 
     ReactTestUtils.renderIntoDocument(events); 
     ReactTestUtils.Simulate.click(events.refs.button.getDOMNode()); 
     events.state.event.should.equal('click'); 
     done(); 
    }); 

    // This test is failing 
    it('should have mouseenter event state', function (done) { 
     var events = Events(); 
     ReactTestUtils.renderIntoDocument(events); 
     ReactTestUtils.Simulate.mouseEnter(events.refs.button.getDOMNode()); 
     events.state.event.should.equal('mouseenter'); 
     done(); 
    }); 

}); 

मैं समझ नहीं सकता कि मैं क्या mouseenter अनुकरण करने के लिए याद आ रही है।

उत्तर

11

वर्तमान में माउसएटर/माउसलेव को ReactTestUtils का उपयोग करके सीधे अनुकरण नहीं किया जा सकता है; अब के लिए

https://github.com/facebook/react/issues/1297

समाधान के लिए, आप (प्रत्येक पर उचित रूप से relatedTarget निर्दिष्ट करना सुनिश्चित करते) का उपयोग कर सकते SimulateNative.mouseOver और SimulateNative.mouseOut और उन्होंने मिलकर कारण होगा और onMouseLeave घटनाओं onMouseEnter आग प्रतिक्रिया: इस खुले समस्या का हल नहीं। के रूप में माउस ले जाएँ घटना में काम करता है v0.11.1 के बाद से प्रतिक्रिया

+0

धन्यवाद बेन, यह समाधान मेरे लिए काम करता है – kiran

2

इस उत्तर अब थोड़ी अलग है - here

देख इसका मतलब है कि तुम अब

ReactTestUtils.Simulate.mouseEnter(events.refs.button.getDOMNode()); 

उपयोग कर सकते हैं आप अपने उदाहरण में करने की कोशिश की बस के रूप में।

संबंधित मुद्दे