मैं मोचा से जस्ट करने के लिए स्वैप कर रहा हूं, और मुझे आश्चर्य है कि प्रतिक्रिया विधि पर जासूसी करने का कोई तरीका है या नहीं। उदाहरण कहना मैं अपने घटक में निम्न विधि देता है के लिए (SDK पुस्तकालय पर ध्यान न दें, यह सिर्फ एक jQuery ajax कॉल निर्माण करती है):कार्यक्षमता पर जेस्ट जासूस
getData() {
sdk.getJSON('/someURL').done(data => {
this.setState({data});
});
}
सिनोन का उपयोग करते हुए मैं बहुत तरह प्रोटोटाइप पर जासूसी करके इसकी जांच होगी:
it('should call getData',() => {
sinon.spy(Component.prototype, 'getData');
mount(<Component />);
expect(Component.prototype.getData.calledOnce).to.be.true;
});
यह विधि को मजाक किए बिना कोड कवरेज सुनिश्चित करेगा। क्या जेस्ट में समान कार्यक्षमता है?
संपादित करें: यदि यह कार्यक्षमता मौजूद नहीं है, तो एपीआई कॉल का परीक्षण करने के लिए अगली सबसे अच्छी रणनीति क्या है?
वही व्यवहार नहीं है जैसा कि 'sinon.spy' में है, क्योंकि यह' getData' को ओवरराइट करेगा, जबकि 'sinon.spy' और' jest.spyOn' भी मूल विधि को कॉल करेगा। –
सही! .. उत्तर तय किया –