Sinon: рд╕рд┐рдиреЙрди рдирдХрд▓реА рд╕рд░реНрд╡рд░ рдиреЛрдб рдореЗрдВ рдЕрдХреНрд╖ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдХреНрддреВре░ 2015  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sinonjs/sinon

Sinon рдХреЗ рдирдХрд▓реА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ Axios рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдиреЛрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ http рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП XMLHttpRequest )ред

рдореИрдВ рдореЛрдЪрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рдХрд░реНрдо-рдзрд╛рд╡рдХ рд╕реЗ рдмрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ http рд╕рдорд░реНрдерд┐рдд рди рд╣реЛред

рдпрд╣рд╛рдБ рдПрдХ рдбреЗрдореЛ рд╣реИ ред рдмрд╕ рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд░реЗрдВ рдФрд░ npm test рдЪрд▓рд╛рдПрдВред

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

рдореИрдВрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, axios рдХреЗ рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред рдпрд╛рдиреА рдХреЗ рдмрдЬрд╛рдп
axios(config)

рдореИрдВрдиреЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛
axios[method](url, data, config)

рддреЛ рдЕрдм,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп moxios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рд╛рдл рд╣реИред

рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдЙрддреНрддрд░

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

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдпрд╣рд╛рдВ рд╣реИрдВ: https://github.com/srph/axios-response-logger/blob/master/tests/spec.js

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА axios рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

http://stackoverflow.com/q/41516044/340760

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдмрдВрдж рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛: рдЗрд╕рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг Node. XHR рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдорд░реНрдерд┐рдд _naturally_ рд╣реИред рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ mochify рдпрд╛ рдХрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рджреВрд╕рд░реА рдмрд╛рдд рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ XHR рд╕реНрдЯрдмреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░рд┐рд╡реЗрд╢ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

@brunolm : рдореИрдВрдиреЗ рдЕрднреА рднреА рдРрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд╣реЛрдиреЗ рддрдХ рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реЛрдЧреАред рдиреЛрдб рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдиреЛрдб рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП HTTP lib рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЯреЗрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдПрдХреНрд╕рдПрдЪрдЖрд░ рд╕реНрдЯрдм рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЧреБрдВрдЬрд╛рдЗрд╢ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХреБрдЫ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдореИрдВ supertest рдмрд░рд╛рдмрд░ рдЕрдХреНрд╖ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛

рдПрдлрд╡рд╛рдИрдЖрдИ: axios рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреА рд╕реНрдЯрдмрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, moxios рд╣реИ ред

рдореИрдВрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, axios рдХреЗ рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред рдпрд╛рдиреА рдХреЗ рдмрдЬрд╛рдп
axios(config)

рдореИрдВрдиреЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛
axios[method](url, data, config)

рддреЛ рдЕрдм,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп moxios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рд╛рдл рд╣реИред

рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдЙрддреНрддрд░

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

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

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

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

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

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

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