Sinon: рд╕реНрдЯрдм рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЬрдире░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sinonjs/sinon

рдЬрд┐рди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░/рдпрд╛ рдирдХрд▓реА рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдПрдХ рдЪрд░ session рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд╣реАрдВ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ globals.js :

let globals = {
    contextName: "DATA_PIPELINE",
    reportContext: "report",
    session: session
};

module.exports = globals;

session рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИ (рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдирд╣реАрдВ)ред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдирдХрд▓реА рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде, рдЖрдк рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдп/рд╡рд╕реНрддреБ рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╢рд╛рдпрдж sinon.replace(object, prop, replacement) рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ?
https://sinonjs.org/releases/v7.2.4/sandbox/#sandboxreplaceobject -property-replacement

рд╣рдо рдЧрд┐рдЯрд╣рдм рдореБрджреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╕рд╛рдл рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмрдЧ рдФрд░ рдлреАрдЪрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЯрд┐рдХрдЯ рдПрдХ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╢реНрди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ; рдХреГрдкрдпрд╛ рдЗрд╕реЗ StackOverflow рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ sinon рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗред

Node.js рдореЗрдВ, рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

global.session = sinon.stub();
// Proceed to import the modules that use the session global and run the tests
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

stevenmusumeche picture stevenmusumeche  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

stephanwlee picture stephanwlee  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andys8 picture andys8  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

OscarF picture OscarF  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kbirger picture kbirger  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ