8
मैं वास्तव में नहीं जानता कि इनलाइन समारोह उपहास करने के लिए कैसे घटक के बच्चे प्रतिक्रिया मेंe.preventDefault नकली कैसे घटक के बच्चे प्रतिक्रिया में
मेरे ढेर: sinon
, chai
, enzyme
;
घटक उपयोग:
<ListItem onClick={() => someFn()} />
घटक के प्रस्तुत करना:
render() {
return (
<li>
<a href="#" onClick={e => {
e.preventDefault();
this.props.onClick();
}}
> whatever </a>
</li>
);
}
यहाँ हम onClick
कि e.preventDefault()
कॉल की है। e.preventDefault()
पर कॉल करने के लिए <a href>
(link
) के लिए कैसे बताना है? मैं onClick
कैसे नकल कर सकता हूं?
उथला प्रतिलिपि सेटअप
function setup() {
const someFn = sinon.stub();
const component = shallow(
<ListItem
onClick={() => {
someFn();
}}
/>
);
return {
component: component,
actions: someFn,
link: component.find('a'),
listItem: component.find('li'),
}
}
और परीक्षण
it('simulates click events',() => {
const { link, actions } = setup();
link.simulate('click'); //Click on <a href>
expect(actions).to.have.property('callCount', 1); //would be good if we'll remove e.preventDefault()
});
टेस्ट के उत्पादन त्रुटि:
TypeError: Cannot read property 'preventDefault' of undefined
धन्यवाद, आदमी। मेरे लिए वास्तव में बड़ी मदद –
आपकी मदद करने में खुशी हुई :) – WitVault