Sinon: ์š”์ฒญ: invokeOnce ๋ฐ invokeWithExactly๋ฅผ ๊ฒฐํ•ฉํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ ์„คํƒ•

์— ๋งŒ๋“  2017๋…„ 01์›” 21์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sinonjs/sinon

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ํ›Œ๋ฅญํ•œ ๋„์„œ๊ด€์ž…๋‹ˆ๋‹ค. ์ŠคํŒŒ์ด ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์š”์ฒญํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ calledWithExactly ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ŠคํŒŒ์ด๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ •ํ™•ํ•˜๊ฒŒ ํ˜ธ์ถœ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ calledOnce ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๊ฒƒ์ด ํ•œ ๋ฒˆ๋งŒ ๋ฐœ์ƒํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ง€๊ธˆ ๋‹น์žฅ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ (๋ถ€๋ถ„ ์ผ์น˜์™€ ๋น„๊ตํ•˜์—ฌ) ๊ธฐ๋ณธ ์–ด์„ค์…˜์ด์–ด์•ผ ํ•˜๋ฏ€๋กœ onceCalledWithExactly ๋˜๋Š” calledOnceWithExactly ์™€ ๊ฐ™์€ ๊ฒฐํ•ฉ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ƒ์šฉ๊ตฌ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•ด?

์˜ˆ์‹œ

sinon-chai ์‚ฌ์šฉํ•˜์—ฌ ์ด ...

expect(mySpy).calledOnce.and.calledWithExactly(expectedValue);

๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

expect(mySpy).calledOnceWithExactly(expectedValue);

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฐธ๊ณ ๋กœ: ๋ฐฉ๊ธˆ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :)

๋ชจ๋“  4 ๋Œ“๊ธ€

์ด ์š”์ฒญ์„ ๋‘ ๋ฒˆ์งธ๋กœ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ calledOnce ์™€ calledWithExactly ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ด๋ฅผ ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ํ†ตํ•ฉํ•˜๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์‹œํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ๋Š” ๋งค์šฐ ๋†€๋ž์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹ค์ œ๋กœ calledWithExactly ๊ฐ€ ๋‹จ 1๋ฒˆ์˜ ํ˜ธ์ถœ์ด ์žˆ๋‹ค๊ณ  ์ฃผ์žฅํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ: ๋ฐฉ๊ธˆ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰