var MyClassStub = sinon.createStubInstance(MyClass);
MyClassStub में स्थिर विधियां नहीं हैं। इसे कैसे ठीक करें?ईएस 6 में साइनऑन के साथ स्थैतिक तरीकों को कैसे रोकें?
var MyClassStub = sinon.createStubInstance(MyClass);
MyClassStub में स्थिर विधियां नहीं हैं। इसे कैसे ठीक करें?ईएस 6 में साइनऑन के साथ स्थैतिक तरीकों को कैसे रोकें?
स्थिर विधि:
sinon.stub(YourClass, 'yourClassMethod').callsFake(() => {
return {}
})
नहीं स्थिर विधि:
sinon.stub(YourClass.prototype, 'yourClassMethod').callsFake(() => {
return {}
})
सिनोन संस्करण 3.1.0 का उपयोग करते हुए मैं नीचे दिए गए (ठूंठ) निजी स्थिर चर कोड का उपयोग कर नकली करने में सक्षम हूँ:
const YourClass = require('./lib/YourClass');
const mockStaticMethod = sinon.stub(YourClass, '_yourStaticMethod').returns('I am called');
केवल एक चीज जो आपको याद रखना है कि sinon.stub() विधि में पहला पैरामीटर होना चाहिए कक्षा ही यह उस वर्ग का ऑब्जेक्ट नहीं होना चाहिए जैसे const yourClassObject = new YourClass();
। कारण यह है कि कक्षा का कोई भी उद्देश्य आपको स्थिर तरीकों तक पहुंचने नहीं देगा।
'MyClassStub .__ proto__ = MyClass' –
https://stackoverflow.com/questions/21072016/stubbing-a-class-method-with-sinon-js –