Sinon: рд╣рдо рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдП рдЧрдП рд╕реНрдЯрдм рдХреЛ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рд░рдгреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рджрд┐рд╕ре░ 2015  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sinonjs/sinon

рддрд░реНрдХ = ["1", "2", "3"] рдПрдХ рд╕рд┐рдиреЙрди рдареВрдВрда рдХреЗ рд▓рд┐рдПред
рдореИрдВ рддрд░реНрдХ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ

stub.withArgs (рддрд░реНрдХ)ред рд╡рд╛рдкрд╕реА (рдорд╛рди); // рдЗрд╕рдХреА рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде
stub.withArgs(sinon.match.array).return(value); // рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо
stub.withArgs(sinon.match.array.and(sinon.match.has("length", 3) // рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо

рдореИрдВ рд╡реЗрдмрд╕реНрдЯреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рддрд░реНрдХ рд╕реНрдЯрдм рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдорджрдж рдХреАрдЬрд┐рдПред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХрд┐рд╕реА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ @mroderick рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

var expectedValue = [1, 2, 3];
var myStub = sinon.stub;

// let's pretend this is the call you want to verify
myStub(expectedValue);

var firstArgument = myStub.getCall(0).args[0];
assert.equal(firstArgument, expectedValue);

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

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

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рд╖рдп Sinon.JS рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓реЗрдВ рдФрд░ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдордВрдЪ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реВрдВрдЧрд╛, рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рд┐рдиреЙрди рд╢рд╛рдВрдд рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рд╣реИ :)

рдХрд┐рд╕реА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ @mroderick рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

var expectedValue = [1, 2, 3];
var myStub = sinon.stub;

// let's pretend this is the call you want to verify
myStub(expectedValue);

var firstArgument = myStub.getCall(0).args[0];
assert.equal(firstArgument, expectedValue);

рдпрд╛ stubName.getCall(0).thisValue.$$paramName;

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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