2016-07-06 9 views

Odpowiedz

2

statyczna metoda:

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

statyczna metoda:

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

Korzystanie sinon wersję 3.1.0 mogę kpić (niedopałek) prywatnej zmiennej statycznej przy użyciu kodu poniżej:

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

Jedyne, co musisz pamiętać, że pierwszy parametr w metodzie sinon.stub() powinien być klasa sama w sobie. To nie powinno być przedmiotem tej klasy, jak na przykład const yourClassObject = new YourClass();. Powodem jest to, że dowolny obiekt klasy nie pozwoli ci uzyskać dostępu do metod statycznych.