如何在ES6中用sinon存储静态方法?

var MyClassStub = sinon.createStubInstance(MyClass); 

MyClassStub不包含静态方法。 如何解决这个问题?

使用sinon版本3.1.0,我能够使用下面给出的代码来模拟(存根)私有静态variables:

 const YourClass = require('./lib/YourClass'); const mockStaticMethod = sinon.stub(YourClass, '_yourStaticMethod').returns('I am called'); 

唯一需要记住的是,sinon.stub()方法中的第一个参数应该是类本身。 它不应该是类的对象,如const yourClassObject = new YourClass(); 。 原因是类的任何对象都不会让你访问静态方法。

静态方法:

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

不是静态的方法:

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