Sinon: ๋ฐฐ์—ด์ธ ์ธ์ˆ˜๋กœ ํ˜ธ์ถœ๋œ ์Šคํ…์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

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

์ธ์ˆ˜ = ["1","2","3"] sinon ์Šคํ…์—.
์ธ์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•  ์ˆ˜ ์—†๋‹ค

stub.withArgs(์ธ์ˆ˜).return(๊ฐ’); // ์ผ์น˜ํ•˜์ง€ ์•Š์Œ
stub.withArgs(sinon.match.array).return(๊ฐ’); // ์ผ์น˜ ๊ฐ€๋Šฅ
stub.withArgs(sinon.match.array.and(sinon.match.has("length", 3)) // ์ผ์น˜ ๊ฐ€๋Šฅ

WebStorm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ฒ„๊น…ํ•˜๊ณ  ์ธ์ˆ˜๊ฐ€ ์Šคํ…์— ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์™€์ฃผ์„ธ์š”.

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

์ฐพ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด @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 ๋Œ“๊ธ€

์šฐ๋ฆฌ๋Š” GitHub ๋ฌธ์ œ ๋ชฉ๋ก์„ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ๋ฒ„๊ทธ์™€ ๊ธฐ๋Šฅ ํ† ๋ก ์— ์ง‘์ค‘ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ‹ฐ์ผ“์€ ์‚ฌ์šฉ๋ฒ• ์งˆ๋ฌธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. Sinon.JS ๋ฉ”์ผ๋ง๋ฆฌ์ŠคํŠธ ์— ๊ฒŒ์‹œํ•˜์—ฌ ๋” ํฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ท€ํ•˜์˜ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์ œ๊ฐ€ Sinon.JS์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐ๋˜๋ฉด ์ƒˆ ํ‹ฐ์ผ“์„ ์—ด๊ณ  ๋ฌธ์ œ ๋ณด๊ณ  ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌ ํ•ด์š”. ํฌ๋Ÿผ์— ์—ฐ๋ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ๋‚ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋…ผ ๋ฉ‹์ง€๋‹ค btw :)

์ฐพ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด @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 ๋“ฑ๊ธ‰