์๋ ผ 2.0 ๋ฆด๋ฆฌ์ฆ ํ๋ณด ์ถ์๋ฅผ ์ค๋นํ๋ฉด์ ์ด๋ฃจ๊ณ ์ถ์ ๊ฒ์ ๋ฌด์์ธ๊ฐ์?
@mantoni @fatso83 @cjohansen ๋ค์์ ์ ์๋ ๋ช ๊ฐ์ง ์์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํธ์งํ๊ฑฐ๋ ์๋์ ๋๊ธ์ ๋ฌ์ ์์ ๋ชฉ๋ก์ ํจ๊ป ๊ฐ์ ธ์ 2.0์ ์ถ์ํ ์ ์๋๋ก ํ์ญ์์ค.๋ก์ผ:
sinon.spy
#920sinon.stub
#932sinon.mock
#933useFakeXMLHttpRequest
์ฌ์ ํ ์ฐธ์กฐ๋จ, #1118 ์ฐธ์กฐ)sinon.sandbox
๋ง์ด๊ทธ๋ ์ด์
(#936์์ ์๋ฃ๋ ์์
์ ๋๋ถ๋ถ) #1088sinon.format
๋ง์ด๊ทธ๋ ์ด์
(ํ
์คํธ์์ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋จ) #967sinon.collection
#1084assert
์ ํ๊ตฐ #1078 ๋ง์ด๊ทธ๋ ์ด์
call
์ ํ๊ตฐ #1079 ๋ง์ด๊ทธ๋ ์ด์
collection
์ ํ๊ตฐ #1084 ๋ง์ด๊ทธ๋ ์ด์
extend
์ ํ๊ตฐ #1085 ๋ง์ด๊ทธ๋ ์ด์
match
์ ํ๊ตฐ #1086mock
์ ํ๊ตฐ #1087 ๋ง์ด๊ทธ๋ ์ด์
sandbox
์ ํ๊ตฐ #1088 ๋ง์ด๊ทธ๋ ์ด์
spy
์ ํ๊ตฐ #1001 ๋ง์ด๊ทธ๋ ์ด์
stub
์ ํ๊ตฐ #1001 ๋ง์ด๊ทธ๋ ์ด์
typeOf
์ ํ๊ตฐ #1085 ๋ง์ด๊ทธ๋ ์ด์
util/core
์ ํ๊ตฐ ๋ง์ด๊ทธ๋ ์ด์
#998, #1081util/event
์ ํ๊ตฐ #1115util/fake-timers
์ ํ๊ตฐ #1116 ๋ง์ด๊ทธ๋ ์ด์
util/fake-server
์ ํ๊ตฐ #1118 ๋ง์ด๊ทธ๋ ์ด์
util/fake-server-with-clock
์ ํ๊ตฐ #1118util/fake-xdomain-request
์ ํ๊ตฐ ๋ง์ด๊ทธ๋ ์ด์
util/fake-xml-http-request
์ ํ๊ตฐ #1125test/sinon-test.js
์ ํ๊ตฐ #968sinon.config
์ฌ์ฉ ์ ๊ฑฐ(๊ฒฐ์ : #936 . #973์์ ์์ ํ ์ ๊ฑฐ๋จ)sinon.logError
๋ฐ sinon.log
[#972]sinon
์ ์ญ ์ก์ธ์ค๊ฐ ํ์ํ์ง ์์, ๊ณต๊ฐ API์์ ๋ด๋ถ ๋์ฐ๋ฏธ๋ฅผ ์ ๊ฑฐํ ์ ์์) #996_ ?
๊ฐ ์๋ ์์
์ ๊ด๋ฆฌ์์ ์ค๋ช
์ด ํ์ํฉ๋๋ค_
sinon.test
๋ฐ sinon.testCase
๋ฅผ ์์ฒด NPM ๋ชจ๋๋ก ์ถ์ถ( sinon-test
) sinonjs/sinon-test#1 ๋ฐ #973sinon.extend
๋ด๋ถํ (Sinon๊ณผ ๊ด๋ จ ์๋ ์ผ๋ฐ ์ ํธ๋ฆฌํฐ) #1235sinon.typeOf
๋ด๋ถํ (Sinon๊ณผ ๊ด๋ จ ์๋ ์ผ๋ฐ ์ ํธ๋ฆฌํฐ) #1235sinon
์ ์ญ์ ์ฌ์ฉํ์ง ์๋๋ก util/fake_server.js
๋ฆฌํฉํฐ๋งsinon.mock
๋ฅผ ์์ฒด ๋ชจ๋( sinon-mock
)์ ์ถ์ถํฉ๋๋ค(๊ฒฐ์ : #745). 3.0๊น์ง ์ ๊ฑฐ๋์ง ์์์ด๋ฏธ /docs
์ ์๋ ์์
์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฌธ์ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๋๋ ๋ค์ ์ฃผ ํด๊ฐ ๋์ ๊ทธ๊ฒ์ ๋ช ์๊ฐ์ ํ ์ ํ๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์์ต๋๋ค.
@mroderick ์ด๋๊ฐ์ ๋ฐ๋ฆฐ ์์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๋ฌธ์ ์์ ์ ๋์๋๋ฆด ์ ์์ต๋๋ค!
์ฒดํฌ๋ฐ์ค๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค. "sinon.sandbox ๋ง์ด๊ทธ๋ ์ด์ "์ ์ ํํด์ผ ํ๋์ง ํ์คํ์ง ์์ง๋ง ์ต์ํ PR์ ๋ซํ ์์ต๋๋ค.
@jonnyreeves : ์ sinon.test
์ ๊ฑฐํด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ์์ฑ๋ ์คํ
์ ์ ๋ฆฌํ๊ณ ํ
์คํธ ํ ์๋์ผ๋ก ๊ฐ์ํ๋ ํ
์คํธ ์ฃผ๋ณ์ ์๋๋ฐ์ค์
๋๋ค. ์ด๋ ๋ง์ beforeEach
๋ฐ afterEach
๊ธฐ๋ฅ์์ ์ฌ๋๋ค์ ๊ฒฝ๊ฐ์ํต๋๋ค. ๋งค์ฐ ์ ์ฉํ๋ฉฐ ํ
์คํธ ํ๋ ์์ํฌ์ ๊ด๋ จ์ด ๊ฑฐ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ ๋ค๋ฅธ ๊ฒ(๋ ๋์ ๊ฒ)์ ์ํด ์ด๊ฒ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ด๊ฒ์ ๋ํ ์ฌ์ด ๋์์ ๋ณผ ํ์๊ฐ ์์ต๋๋ค.
์ ๋ sinon.testCase
์ง์ ์ฌ์ฉํ ์ ์ด ์์ต๋๋ค. ์๋ง๋ ํด๋น API๊ฐ BusterJS(๊ฐ ํ
์คํธ ์ผ์ด์ค๊ฐ ํ
์คํธ ์ค์ํธ์ ์์ฑ์ธ ๊ฒฝ์ฐ)์ ์ ํฉํ๊ณ Mocha(๊ฐ ํ
์คํธ๊ฐ ํ
์คํธ ์ค์ํธ์ ๋ณธ๋ฌธ์์ ์คํ๋๋ ์ต๋ช
ํจ์์ธ ๊ฒฝ์ฐ)์ ์ ํฉํ๊ธฐ ๋๋ฌธ์ผ ๊ฒ์
๋๋ค. ).
@fatso83 sinon.test
์ ์ฃผ์ ๋ฌธ์ ๋ sinon.config
์ฑ๊ธํค์ ์์กดํ๋ค๋ ์ฌ์ค์
๋๋ค. IMHO ์ฌ์ฉ์๋ ํ
์คํธ ํ๋ ์์ํฌ์ beofreEach
๋ฐ afterEach
ํํฌ์์ ์๋๋ฐ์ค๋ฅผ ์์ฑ(๋ฐ ๋ณต์)ํ์ฌ ํจ์ฌ ๋ ๋ง์ ์ ์ด ๊ถํ์ ๊ฐ์ง ์ ์์ต๋๋ค.
๊ณต๊ฐ API์ sinon.test
(๋ฐ sinon.testCase
)๋ฅผ ์ ์งํ๋ ค๋ ๊ฒฝ์ฐ; ๊ทธ๋ฐ ๋ค์ ์ฐ๋ฆฌ๋ ์ด ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ชจ๋ ํด๊ฒฐํด์ผ ํฉ๋๋ค. sinon์ ์ค๋ ์ฌ์ฉ์/์ง์์ด์ง๋ง ๊ทธ์ ํ๋ก์ ํธ๋ฅผ ํดํนํ๋ ๊ฒ์ ์ฒ์์
๋๋ค. ์ด๋ป๊ฒ ํฉ์์ ๋๋ฌํด์ผ ํฉ๋๊น?
@jonnyreeves ์ข์ต๋๋ค . sinon.config
์ ์์กดํ๋ค๊ณ ์ธ๊ธํ์ ๋ ๋ ์ดํด๊ฐ ๋์์ต๋๋ค. IMHO๊ฐ ์๋๋ฐ์ค๋ฅผ ๋ช
์์ ์ผ๋ก ์์ฑํ๊ณ ๋ณต์ํ๋ ๊ฒ์ Sinon 1์์ ์์ sinon.test
๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ๊ถ๊ธํดํ๋ ์ฌ๋๋ค์ ์ํ ๋์์ผ๋ก ์ด๊ฒ์ ์ ๊ณตํ๋ ํ ๊ด์ฐฎ์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ์ด์ผ ํฉ๋๋ค.
sinon.test
_์ด๋ ๋ช
์์ ์ผ๋ก ์๋๋ฐ์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ฒ์ 2์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ฐธ์กฐ link to sandbox
._
์ ๋ ๋ฒ์ 2์์ ๋ ๊ฐ๊ฒฐํ API๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก typeOf
, extends
๋ฐ sinon.test*
์ ๋ค๋ฅธ NPM ๋ชจ๋ ๋๋ ๊ธฐํ ๊ธฐ์กด ๊ธฐ๋ฅ์์ ๋ ์ ์ ๊ณต๋ ์ ์์ต๋๋ค.
npm install sinon-test
๋ฐ var sinonTest = require('sinon-test')(config);
๊ฒ์ด ์ ์ ํ ๋์ฒดํ์ด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
:+1: ์ด์ ๊ฐ์ ์ ํธ๋ฆฌํฐ๋ฅผ ๋ณ๋์ npm ๋ชจ๋๋ก ์ด๋ํฉ๋๋ค. core
์ ์๋ ๋ ์ ์ ์ฝ๋
์ ๋ ฅํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ง๊ธ๊น์ง์ ๋ ผ์๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด ๊ฐ์๋ฅผ ๋งจ ์๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค(์ฃผ๋ก ๋ฌผ์ํ ์ ๊ฑฐ, ์์ ๋ช ํํ). ํ ๋ฒ ์ดํด๋ณด์ธ์.
๋ํ ๋ค์์์ ์ ์ฌํ ํ์๋ฅผ ์ป์ ์ ์์ต๋๊น?
sinon.log
๋ฐ sinon.logError
(๋ ๋ชจ๋ fake_server์์ ์ฌ์ฉ๋๋ฉฐ ํด๋น ์ธ์คํด์ค์ ๊ตฌ์ฑ์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์
๋๋ค)sinon.mock
์ ๊ฑฐ๊ฐ์ฌ ํด์
๋ด๊ฐ ์ฌ์ฉํ ์ ์ด sinon.testCase
ํ์ง๋ง ๋ด๊ฐ ๋ฌด๊ฑฐ์ด ์ฌ์ฉ์์
๋๋ค, sinon.test
. ๋๋ ๊ทธ๊ฒ์ด ๋ณ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๊ฐ๋ ๊ด์ฐฎ์,ํ์ง๋ง ๊ทธ๋ฅ ์์ง : ์ง์ํ์ง ์๋ ํ
์คํธ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฝค ๋ง์ ์ฌ๋๋ค์ด beforeEach
์ด๋ฌํ ์ค์ ์ด ์ธ์ ๋์์ธ์ ์ํด (์ : ํ
์ดํ) ๊ธฐ๋ฅ์ ๊ฒฐํฉ๋ ํ
์คํธ ์ผ์ด์ค๋ก ์ด์ด์ง๋๋ค. ์ง์ ๊ต์ฒด๊ฐ ๊ฐ๋จํ์ง ์์ผ๋ฉด ์ด๋ฌํ ์ฌ์ฉ์์๊ฒ ๋ง์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ ๊ณตํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
sinon.test = require('sinon-test');
@mantoni : ์ข์ ์ ์์
๋๋ค. ํ์ฌ ์ฌ์ฉ๋์ง ์๋ test
์์ฑ์ ํ ๋นํ๋ฉด ํ
์คํธ์ ํ ์ค๋ง ์ถ๊ฐํ๋ฉด ์ฌ๋๋ค์ด ๋ฒ๊ฑฐ๋ก์์ ๋ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ sinon
๊ฐ์ฒด๊ฐ ์ด๋ค ์์ ์์ ๊ณ ์ ๋์ง ์์๋์ง ํ์ธํด์ผ ํฉ๋๋ค( Object.freeze(sinon)
์์ ์ฒ๋ผ) ...
@jonnyreeves : sinon.mock
๊ด๋ จํ์ฌ @mroderick ์ด ์ด๊ฒ์ ์ ๊ฑฐํ๊ธฐ ์ ์ 2.0์ด ๋ฆด๋ฆฌ์ค๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ let sinon.mock = require('sinon-mock')
ํ ์ ์์ต๋๋ค.
sinon.log*
์ ๊ด๋ จํ์ฌ ํ์ํ ๋ ๊ตฌ์ฑ์ผ๋ก ์ ๊ณตํ ์๋ง ์๋ค๋ฉด ๊ณต๊ฐ ๊ธฐ๋ฅ์ผ๋ก ๊ณ ์ํ ์ด์ ๊ฐ ์์ต๋๋ค.
WRT๋ sinon-test
ํ๊ณ ์๋น์๊ฐ ๊ตฌ์ฑ์ ์ ๊ณตํ ์ ์๋๋ก ํ์ฉํด์ผ ํฉ๋๋ค. ์:
sinon.test = require('sinon-test').withConfig({ ... });
๋๋ ์ ์ฌ.
sinon-test
ํจํค์ง๋ฅผ ๋ง๋๋ ๋์ ๋ ๋ค๋ฅธ ๊ฐ๋ฅํ API ๋ณ๊ฒฝ์ ๋ฐ๊ฒฌํ์ต๋๋ค. sinon.assert
์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋์ผ ํ๋์ง์ ๋ํ ์๊ฐ์ด ์์ต๋๊น? ๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ ๋์๊ฒ sinon API์ ํต์ฌ ๋ถ๋ถ์ฒ๋ผ ๋๊ปด์ง์ง ์์ผ๋ฉฐ sinon.test
๋ฐ sinon.testCase
์ ํจ๊ป sinon.test
sinon-test
ํจํค์ง๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒ์ด ๋ ์ ํฉํ ์ ์์ต๋๊น?
@fatso83 @mantoni @cjohansen; ๊ฒํ ํ ์ค๋น๊ฐ ๋ sinon-test
ํจํค์ง์ ์์
๋น๋๊ฐ ์์ต๋๋ค. ์ด์ ๋ํด PR์ ์ฌ๋ฆด ์ ์๋๋ก sinonjs/sinon-test
์์ ๋น git repo๋ฅผ ์ด๊ธฐํํด ์ฃผ์๊ฒ ์ต๋๊น?
๊ฐ์ฌ ํด์
๊ทธ๊ฒ์ ๋นจ๋๋ค! https://github.com/sinonjs/sinon-test
@cjohansen ๋น README๋ฅผ ๋ฐ์ด์ฃผ์๊ฒ ์ต๋๊น? ํ์ฌ ์ํ๋ก๋ PR์ ์ฌ๋ฆด ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ฃ
๊ฐ์ฌํฉ๋๋ค, PR ์ ๊ธฐ - ํผ๋๋ฐฑ ํ์: https://github.com/sinonjs/sinon-test/pull/1
@mroderick ์ด๋๊ฐ์ ๋ฐ๋ฆฐ ์์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๋ฌธ์ ์์ ์ ๋์๋๋ฆด ์ ์์ต๋๋ค!
@spinningarrow ๋๋จํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๋๋จธ์ง ๋ ธ๋ ฅ๊ณผ ๋ณ๋๋ก ์ถ์ ํ๊ธฐ ์ํด #991์ ๋ง๋ค์์ต๋๋ค. ๋๋ ๋ด ์๊ฐ๊ณผ ํจ๊ป ์ด๊ฒ์ ๊ณง ์ ๋ฐ์ดํธํ ๊ฒ์ด๊ณ , ์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์์ ๊ทธ๊ฒ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋๋๋ก mock๊ณผ ๊ด๋ จํ์ฌ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. @jonnyreeves ๊ฐ ์ค์ ๋ก ๋ชจ๋์ ์ถ์ถํ๋ ํ๋ ์์ ์ ์๋ฃ
์ฐ๋ฆฌ๋ ๋๋๋ก mock๊ณผ ๊ด๋ จํ์ฌ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. @jonnyreeves ๊ฐ ์ค์ ๋ก ๋ชจ๋์ ์ถ์ถํ๋ ํ๋ ์์ ์ ์๋ฃ
์ด๋ ๋ํ ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ฐ๋ฐ ๋๊ตฌ ๋ฑ๊ณผ ๋๊ธฐํ๋ ์ํ๋ก ์ ์งํด์ผ ํ๋ ๊ด๋ฆฌ ๋ถ๋ด์ ์๋ฏธํฉ๋๋ค.
์ฌ์ด ๊ณต์ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ๋จผ์ ์ค์ ํด์ผ ํ ๊น์? ์ฐธ์กฐ: @mantoni
@mroderick @fatso83 ์ข์ต๋๋ค . 2.0์
๋ชจ๋ ๋ฏธํด๊ฒฐ ๋ง์ด๊ทธ๋ ์ด์ ์ผ๋ก ๊ฐ์ฃผ๋๋ ์ฌํญ์ ๋ค๋ฃจ๊ธฐ ์ํด ์ด ๋ฌธ์ ์ ๊ฐ์๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋ฐ์ด๋ ์ํ.
๋ํ ๋ค์ ์ฌํญ์ ๋ํ ํฉ์๋ฅผ ์ป๊ณ ์ถ์ต๋๋ค.
sinon.
) API์์ typeOf
๋ฐ extend
๋ฅผ ์ ๊ฑฐํด์ผ ํฉ๋๊น, ์๋๋ฉด API์ ํ๋ํ๋ฅผ ๊ฒช์ Sinon 3.x๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ ๊น์? .๊ฐ์ฌํฉ๋๋ค.
@jonnyreeves : ์ค๋ ๋ฐค ํ์คํ ๋ฐ์์ จ๊ตฐ์ ๐บ. ๋๋ ๊ธด ํด๊ฐ๋ฅผ ์๋๊ณ ์์ผ๋ฏ๋ก ํ ์คํธ ์ค์ํธ์ ๋ฐ์ด๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์คํ ๋์ธ ์ ์์ต๋๋ค(์๋์ "๊ทธ๋ฌ๋"๊ฐ ์์).
๊ทํ์ ํฌ์ธํธ์ ๋ํด:
sinon-ie
ํจํค์ง? IE9๋ ์ฌ์ ํ XDR์ด๋ผ๋ ์ด์ํ CORS ๋์๊ณผ ํจ๊ป ๋ฐฐ์ก๋์์ต๋๋ค. 2012๋
์ด์ ์ ์ถ์๋ IE ๋ฒ์ ์ ๊ณ์ ์ง์ํ๋ ค๋ ์ฌ๋์ด ์๋ค๋ฉด ํญ์ 1.x ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ ๊ฒ์
๋๋ค. XDM์ด ๋ฌด์์ ์ง์นญํ๋์ง ์ ๋ชจ๋ฅด์๊ฒ ์ต๋๊น? ์ด๋ค ๋ธ๋ผ์ฐ์ ๋ฒ์ sinon-ie
์ด ํ์ํ์ง ์ ๋ชจ๋ฅด๊ฒ ์ผ๋ฏ๋ก ํจํค์ง๊ฐ ํ์ํ์ง ์๋ค๊ณ ๋๋ฌด ๊ณผ์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค.์ด์ ๋ํ ์ํ๊ฐ ๊ถ๊ธํ์ญ๋๊น? ~6๊ฐ์ ์ ์ดํ๋ก ๋ง์ ์ง์ ์ด ์์๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค. ์ ๋ ํ์ฌ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ํํ์ ์์กดํ๊ณ ์์ต๋๋ค(Symbol ์ง์ ๊ธฐ๋ฅ์ด ํฐ ์ญํ ์ ํจ).<3
@ELLIOTCABLE ์๊ธ์ด ์๊ธฐ ๋๋ฌธ์ ์ ํด์ง ์ผ์ ์ด ์์ต๋๋ค. ๊ด๋ฆฌ์ ๊ทธ๋ฃน ๋๋ ๊ทํ์ ๊ฐ์ ๋ค๋ฅธ ์์ ๋ด์ฌ์๊ฐ ์์ ๋ชฉ๋ก์ ๋ํด ์์ ํ ์๊ฐ์ด ์์ ๋ ์งํ๋ฉ๋๋ค. ์ฆ, ์กฐ๊ธ ๋ ์ฐ๋ฌ๋ณด๊ธฐ ๊ท์ฐฎ๋ค๋ฉด "์ํ"๋นํธ์ ์ค์ค๋ก ๋ตํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค ๐:
๊ทธ๋์ ... ์ฐ๋ฆฌ๋ ์ด๋๊ฐ์ ๊ฐ๊ณ ์์ง๋ง ์ด์ ๋ฒ์ ์ ๋ํ ๋ฒ๊ทธ ์์ ์ ๊ฐ๋ ํ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ์ง์์ ์ผ๋ก ์ ๊ณตํ๋ ๊ฒ์ ์ ์ง ๊ด๋ฆฌ ์๊ฐ์ ๋ง์ด ์ก์๋จน์ต๋๋ค. ์กฐ์ฌํ๊ณ ์ฐ๋ ๊ฒ๋ง์ผ๋ก๋ ๊ฒฐ๊ตญ 30๋ถ ๊ฑธ๋ ธ๋ค์ ๐
๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ชฉ๋ก์ ์ดํด๋ณธ ํ์๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ฌธ์ ๋ง ๋จ์ ์์ต๋๋ค.
์์ ๋ค๋ฅธ ํ์ธ ํ์ ๋๋ถ๋ถ์ #1221์ ๋ ผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ง์๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํ๋ ์ด์ IE ๋ฆด๋ฆฌ์ค(6-10)์ ๊ด๋ จ์ด ์์ผ๋ฏ๋ก ๋ฌด์ํด๋ ๋ฉ๋๋ค. ์ง๊ธ ํด๊ฒฐํ ๊ฒ์ ๋๋ค.
@sinonjs/sinon-core: ์ด์ ๋๊ธ์์ #1221์ ๋ ผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฃํ ์ ์๋ ์์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์์ ์๊ฒ ๋์์ต๋๋ค.
์ด์จ๋ ๋ง์ง์ง ์์ ๊ฒฝ์ฐ ๋ ๊ฑฐ์ IE ๋นํธ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด PR์ ์์ฑํด๋ ์๊ด์์ต๋๊น? ๋๋ xdomain
๊ฐ ์ญ์ฌ์ ๋งค๋ฆฝ์ง๋ก ๋๋ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋๋ถ๋ถ IE ์ ์ฉ CORS์ ์ ์ฌํ ํดํน์ด๋ฏ๋ก ์ ๊ฑฐํ ์ ์์ต๋๊น?
@fatso83 ์ํํํํ ์ฐธ์กฐ๋ ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๋ ์๊ฒฌ์ ๋์ณค์ต๋๋ค. ์ด ๋ฆฌ๋ทฐ๊ฐ ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
๊ด๋ จ ์์: ์ด๊ฒ์ ์ผ๋ถ๊ฐ IE6์ ๋ํ ์ง์์ ํฌ๊ธฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ด ์์์ด. ์ ๊ธ์, c'est la March du progrรจs! /=
์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ๋ฌธ์ ์ฌ์ดํธ์๋ ์์ฒด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Hey chaps - 2.0์ "์์ ๋" sinon ๋ฆด๋ฆฌ์ค๋ก ํ์ํ๊ณ 1.x๋ฅผ ์ฃฝ์ด๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ด ์์ต๋๊น? :)
๋ง์ง๋ง์ผ๋ก #1297์ ์ํ๋ค๊ณ ์๊ฐํ์ธ์.
๋์ฐฉ ์์ ์๊ฐ? ๋ฆ์ด๋ ๋ค์ ์ฃผ๊น์ง๋ ๋ฐฐ์กํ์ง ์๊ณ ๊ธฐ๋ฅ ์ค ํ๋๊ฐ ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ ๊ทธ ๊ธฐ๋ฅ์ ์ฐ๊ธฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋น์ ์ ์๋ฆ๋ต์ต๋๋ค. <3
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
npm install sinon-test
๋ฐvar sinonTest = require('sinon-test')(config);
๊ฒ์ด ์ ์ ํ ๋์ฒดํ์ด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.