рдореИрдВ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдЯрдмрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдирдХрд▓реА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
// file: 'foo.js'
export function a() {
// .....
}
export function b() {
let stuff = a(); // call a
// ...do stuff
}
рдФрд░ рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг:
import * as actions from 'foo';
const aStub = sinon.stub(actions, 'a').returns('mocked return');
actions.b(); // b() is executed, which calls a() instead of the expected aStub()
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдпрд╣ рдорд╛рдирдХ ES5 рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд╛рдо рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрдн рдпреЛрдЧреНрдп рднреА рд╣реЛрддрд╛ рд╣реИред рд╣рдо рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕реНрдЯрдмрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдк рдмрд╛рд╣рд░реА рд╕рдВрджрд░реНрдн рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рд╕рдВрджрд░реНрдн рд╕рдорд╛рди рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдк рдПрдХ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрдЯрд░ (рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣) рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХреЛрдИ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ???рдиреЛрдбрдЬ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЖрдирд╛ рдХрд╛рдлреА рдЖрдо рд╣реИред
рдпрд╣ рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ, рдХреИрд╕реЗ рдХрд░реЗрдВ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ:
http://sinonjs.org/how-to/link-seams-commonjs/