var MyClassStub = sinon.createStubInstance(MyClass);
MyClassStub enthält keine statischen Methoden. Wie behebt man das?Wie static Methoden mit Sinon in ES6 stub?
var MyClassStub = sinon.createStubInstance(MyClass);
MyClassStub enthält keine statischen Methoden. Wie behebt man das?Wie static Methoden mit Sinon in ES6 stub?
statische Methode:
sinon.stub(YourClass, 'yourClassMethod').callsFake(() => {
return {}
})
nicht statische Methode:
sinon.stub(YourClass.prototype, 'yourClassMethod').callsFake(() => {
return {}
})
Mit sinon Version 3.1.0 Ich bin in der Lage (Stub) privaten static Variable gegeben unter Verwendung des Codes zu verspotten:
const YourClass = require('./lib/YourClass');
const mockStaticMethod = sinon.stub(YourClass, '_yourStaticMethod').returns('I am called');
Die einzige Sache, die Sie beachten müssen, dass der erste Parameter in sinon.stub() Methode sein sollte Klasse selbst. Es sollte kein Objekt dieser Klasse wie const yourClassObject = new YourClass();
sein. Der Grund dafür ist, dass Sie mit keinem Objekt der Klasse auf statische Methoden zugreifen können.
'MyClassStub .__proto__ = MyClass' –
https://stackoverflow.com/questions/21072016/stubbing-a-class-method-with-sinon-js –