Sinon: Sinon κ°€μ§œ μ„œλ²„λŠ” λ…Έλ“œμ˜ axios에 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2015λ…„ 10μ›” 19일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: sinonjs/sinon

Sinon 의 κ°€μ§œ μ„œλ²„λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λ…Έλ“œ ν™˜κ²½μ—μ„œ http λ₯Ό μ‚¬μš©ν•˜λŠ” Axios 에 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€(λΈŒλΌμš°μ €μ˜ 경우 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.jsμ—μ„œ ν…ŒμŠ€νŠΈκ°€ μ‹€ν–‰λ˜κ³  μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. XHR κ΅¬ν˜„μ—μ„œλŠ” _μžμ—°μŠ€λŸ½κ²Œ_ μ™„μ „νžˆ μ§€μ›λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ mochify λ˜λŠ” Karmaλ₯Ό μ‚¬μš©ν•˜μ—¬ λΈŒλΌμš°μ €μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν–ˆλ‹€λ©΄ XHR μŠ€ν…μ΄ λΈŒλΌμš°μ € ν™˜κ²½μ„ λŒ€μƒμœΌλ‘œ ν•˜κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ λ¬Έμ œκ°€ 될 κ²ƒμž…λ‹ˆλ‹€.

@brunolm : λ‚˜λŠ” μ—¬μ „νžˆ μ‹€νŒ¨ν•œ λΈŒλΌμš°μ €μ—μ„œ μ‹€ν–‰λ˜λŠ” ν…ŒμŠ€νŠΈλ₯Ό 보지 supertest (SuperAgent용).

μ°Έκ³ : 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 λ“±κΈ‰