var MyClassStub = sinon.createStubInstance(MyClass);
MyClassStubには静的メソッドが含まれていません。それを修正するには?
静的メソッド:
sinon.stub(YourClass, 'yourClassMethod').callsFake(() => {
return {}
})
静的メソッドではありません:
sinon.stub(YourClass.prototype, 'yourClassMethod').callsFake(() => {
return {}
})
Sinonバージョン3.1.0を使用すると、以下のコードを使用してプライベート静的変数をモック(スタブ)できます。
_const YourClass = require('./lib/YourClass');
const mockStaticMethod = sinon.stub(YourClass, '_yourStaticMethod').returns('I am called');
_
Sinon.stub()メソッドの最初のパラメーターはクラス自体であることを覚えておく必要がある唯一のこと。 const yourClassObject = new YourClass();
のようなそのクラスのオブジェクトであってはなりません。その理由は、クラスのどのオブジェクトでも静的メソッドにアクセスできないためです。