2016-07-06 8 views
5
var MyClassStub = sinon.createStubInstance(MyClass); 

MyClassStub enthält keine statischen Methoden. Wie behebt man das?Wie static Methoden mit Sinon in ES6 stub?

+0

'MyClassStub .__proto__ = MyClass' –

+0

https://stackoverflow.com/questions/21072016/stubbing-a-class-method-with-sinon-js –

Antwort

2

statische Methode:

sinon.stub(YourClass, 'yourClassMethod').callsFake(() => { 
    return {} 
}) 

nicht statische Methode:

sinon.stub(YourClass.prototype, 'yourClassMethod').callsFake(() => { 
    return {} 
}) 
3

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.

Verwandte Themen