Sinon: ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 2.0 ๋ฆด๋ฆฌ์Šค

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

์‹œ๋…ผ 2.0 ๋ฆด๋ฆฌ์ฆˆ ํ›„๋ณด ์ถœ์‹œ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ์ด๋ฃจ๊ณ  ์‹ถ์€ ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

@mantoni @fatso83 @cjohansen ๋‹ค์Œ์€ ์ œ์•ˆ๋œ ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ์•„๋ž˜์— ๋Œ“๊ธ€์„ ๋‹ฌ์•„ ์ž‘์—… ๋ชฉ๋ก์„ ํ•จ๊ป˜ ๊ฐ€์ ธ์™€ 2.0์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์‹ญ์‹œ์˜ค.๋กœ์ผ“:

CommonJS ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ sinon.spy #920
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ sinon.stub #932
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ sinon.mock #933
  • [x] fake_server ๋ฐ ์นœ๊ตฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜(#934์—์„œ ์ˆ˜ํ–‰๋œ ๋Œ€๋Ÿ‰ ์ž‘์—…, useFakeXMLHttpRequest ์—ฌ์ „ํžˆ ์ฐธ์กฐ๋จ, #1118 ์ฐธ์กฐ)
  • [x] sinon.sandbox ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜(#936์—์„œ ์™„๋ฃŒ๋œ ์ž‘์—…์˜ ๋Œ€๋ถ€๋ถ„) #1088
  • [x] sinon.format ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜(ํ…Œ์ŠคํŠธ์—์„œ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋จ) #967
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ sinon.collection #1084

ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ CommonJS ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

  • [x] assert ์ œํ’ˆ๊ตฐ #1078 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] call ์ œํ’ˆ๊ตฐ #1079 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] collection ์ œํ’ˆ๊ตฐ #1084 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] extend ์ œํ’ˆ๊ตฐ #1085 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ match ์ œํ’ˆ๊ตฐ #1086
  • [x] mock ์ œํ’ˆ๊ตฐ #1087 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] sandbox ์ œํ’ˆ๊ตฐ #1088 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] spy ์ œํ’ˆ๊ตฐ #1001 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] stub ์ œํ’ˆ๊ตฐ #1001 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] typeOf ์ œํ’ˆ๊ตฐ #1085 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] util/core ์ œํ’ˆ๊ตฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ #998, #1081
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ util/event ์ œํ’ˆ๊ตฐ #1115
  • [x] util/fake-timers ์ œํ’ˆ๊ตฐ #1116 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] util/fake-server ์ œํ’ˆ๊ตฐ #1118 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ util/fake-server-with-clock ์ œํ’ˆ๊ตฐ #1118
  • [x] util/fake-xdomain-request ์ œํ’ˆ๊ตฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • [x] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ util/fake-xml-http-request ์ œํ’ˆ๊ตฐ #1125

์ •๋ฆฌ ์ž‘์—…

  • [x] ๋ถ„๋ฅ˜ test/sinon-test.js ์ œํ’ˆ๊ตฐ #968
  • [x] sinon.config ์‚ฌ์šฉ ์ œ๊ฑฐ(๊ฒฐ์ •: #936 . #973์—์„œ ์™„์ „ํžˆ ์ œ๊ฑฐ๋จ)
  • [x] sinon.logError ๋ฐ sinon.log [#972]
  • [x] ํ…Œ์ŠคํŠธ์—์„œ CommonJS ๊ฐ€์ ธ์˜ค๊ธฐ ์‚ฌ์šฉ(๋” ์ด์ƒ sinon ์ „์—ญ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ, ๊ณต๊ฐœ API์—์„œ ๋‚ด๋ถ€ ๋„์šฐ๋ฏธ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Œ) #996
  • [x] 1.17 -> 2.0์—์„œ API ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”ํ•˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ ์กฐ์–ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. #1090

๊ณต๊ฐœ API ๋ณ€๊ฒฝ ์‚ฌํ•ญ

_ ? ๊ฐ€ ์žˆ๋Š” ์ž‘์—…์€ ๊ด€๋ฆฌ์ž์˜ ์„ค๋ช…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค_

  • [x] sinon.test ๋ฐ sinon.testCase ๋ฅผ ์ž์ฒด NPM ๋ชจ๋“ˆ๋กœ ์ถ”์ถœ( sinon-test ) sinonjs/sinon-test#1 ๋ฐ #973
  • [x] ๋‚ด๋ถ€ ์ฝ”์–ด ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‚ฌ์šฉ ์ค‘๋‹จ(#1090 ์ฐธ์กฐ)
  • [x] sinon.extend ๋‚ด๋ถ€ํ™” (Sinon๊ณผ ๊ด€๋ จ ์—†๋Š” ์ผ๋ฐ˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ) #1235
  • [x] sinon.typeOf ๋‚ด๋ถ€ํ™” (Sinon๊ณผ ๊ด€๋ จ ์—†๋Š” ์ผ๋ฐ˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ) #1235
  • [x] ๋ ˆ๊ฑฐ์‹œ IE ์ง€์›/ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ๊ฑฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
  • [x] sinon ์ „์—ญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก util/fake_server.js ๋ฆฌํŒฉํ„ฐ๋ง

๋ฒ”์œ„ ๋ฐ–

  • sinon.mock ๋ฅผ ์ž์ฒด ๋ชจ๋“ˆ( sinon-mock )์— ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค(๊ฒฐ์ •: #745). 3.0๊นŒ์ง€ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Œ

์ƒˆ ๋ฌธ์„œ ์‚ฌ์ดํŠธ

  • [ ] ์ƒˆ ๋ฌธ์„œ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ #1220์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
Help wanted

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

npm install sinon-test ๋ฐ var sinonTest = require('sinon-test')(config); ๊ฒƒ์ด ์ ์ ˆํ•œ ๋Œ€์ฒดํ’ˆ์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

์ด๋ฏธ /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์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์— ๊ตฌ์„ฑ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค)
  • 2.0์—์„œ 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์„

๋ชจ๋“  ๋ฏธํ•ด๊ฒฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์‚ฌํ•ญ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์ด ๋ฌธ์ œ์˜ ๊ฐœ์š”๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋›ฐ์–ด๋‚œ ์ž‘ํ’ˆ.

๋˜ํ•œ ๋‹ค์Œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ•ฉ์˜๋ฅผ ์–ป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  1. ๊ณต๊ฐœ( sinon. ) API์—์„œ typeOf ๋ฐ extend ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด API์˜ ํ˜„๋Œ€ํ™”๋ฅผ ๊ฒช์„ Sinon 3.x๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ• ๊นŒ์š”? .
  2. 2.0์—์„œ ๋ ˆ๊ฑฐ์‹œ IE ์ง€์›/ํ•ดํ‚น์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ 'fakeXDM' ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ƒˆ ๋ฌธ์„œ ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด 2.0 ๋ฆด๋ฆฌ์Šค์˜ ์ „์ œ ์กฐ๊ฑด์ž…๋‹ˆ๊นŒ? ๊ฒฌ์ธ๋ ฅ์ด ๋ณ„๋กœ ์—†์–ด์„œ ๊ฑฑ์ •์ž…๋‹ˆ๋‹ค :)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@jonnyreeves : ์˜ค๋Š˜ ๋ฐค ํ™•์‹คํžˆ ๋ฐ”์˜์…จ๊ตฐ์š” ๐Ÿ˜บ. ๋‚˜๋Š” ๊ธด ํœด๊ฐ€๋ฅผ ์•ž๋‘๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ์˜ ๋›ฐ์–ด๋‚œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ™•์‹คํžˆ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜์— "๊ทธ๋Ÿฌ๋‚˜"๊ฐ€ ์žˆ์Œ).

๊ท€ํ•˜์˜ ํฌ์ธํŠธ์— ๋Œ€ํ•ด:

  1. ๊ทธ๋“ค์€ ๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๊ฑฐ์˜ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค(์ฐธ์กฐ, ์œ„์˜ ๊ฐœ์š”).
  2. ๋จผ์ € "๋ ˆ๊ฑฐ์‹œ IE"๋ฅผ ์ •์˜ํ•ฉ์‹œ๋‹ค. ๋ฒ„์ „ < 10 ๋˜๋Š” ์ „์ฒด sinon-ie ํŒจํ‚ค์ง€? IE9๋Š” ์—ฌ์ „ํžˆ XDR์ด๋ผ๋Š” ์ด์ƒํ•œ CORS ๋Œ€์•ˆ๊ณผ ํ•จ๊ป˜ ๋ฐฐ์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2012๋…„ ์ด์ „์— ์ถœ์‹œ๋œ IE ๋ฒ„์ „์„ ๊ณ„์† ์ง€์›ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ํ•ญ์ƒ 1.x ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. XDM์ด ๋ฌด์—‡์„ ์ง€์นญํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „ sinon-ie ์ด ํ•„์š”ํ•œ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์œผ๋ฏ€๋กœ ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๋„ˆ๋ฌด ๊ณผ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ™•์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฌธ์„œํ™”๋Š” ์ง€๊ธˆ ๋‹น์žฅ์€ ๊ณจ์นซ๊ฑฐ๋ฆฌ์ด์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๋ฌด์—‡์„ ๋งํ•ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ๋‹ค๋ฅธ ์š”์ ์„ ๋•๊ธฐ ์ „์— #991์„ ํŒŒํ—ค์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์žˆ์œผ๋ฉด ์‚ถ์ด ๋” ๋‚˜์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ƒํƒœ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ญ๋‹ˆ๊นŒ? ~6๊ฐœ์›” ์ „ ์ดํ›„๋กœ ๋งŽ์€ ์ง„์ „์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๋Š” ํ˜„์žฌ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ์‹œํ—˜ํŒ์— ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(Symbol ์ง€์› ๊ธฐ๋Šฅ์ด ํฐ ์—ญํ• ์„ ํ•จ).ํƒ€์ž„๋ผ์ธ' / '์•„์ง ํƒ€์ž„๋ผ์ธ์ด ์—†์Šต๋‹ˆ๋‹ค'๊ฐ€ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! <3

@ELLIOTCABLE ์ž๊ธˆ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ•ด์ง„ ์ผ์ •์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ๊ทธ๋ฃน ๋˜๋Š” ๊ท€ํ•˜์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ž์› ๋ด‰์‚ฌ์ž๊ฐ€ ์œ„์˜ ๋ชฉ๋ก์— ๋Œ€ํ•ด ์ž‘์—…ํ•  ์‹œ๊ฐ„์ด ์žˆ์„ ๋•Œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์กฐ๊ธˆ ๋” ์ฐ”๋Ÿฌ๋ณด๊ธฐ ๊ท€์ฐฎ๋‹ค๋ฉด "์ƒํƒœ"๋น„ํŠธ์— ์Šค์Šค๋กœ ๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜‰:

  1. ์œ„์— "... 2016๋…„ 7์›” 8์ผ์— ์ฐธ์กฐ๋จ"์ด ํ‘œ์‹œ๋˜๋”๋ผ๋„ ๋ชฉ๋ก์˜ ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์ด ํ•ด๋‹น ๋‚ ์งœ์˜ ๊ฒƒ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹ ํ˜ธ #1235์—์„œ๋Š” ์ด๋ฅผ "12์ผ ์ „"์ด๋ผ๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ฌธ์ œ ๋ชฉ๋ก์€ ๋ฐ˜๋…„ ์ „๊ณผ ๋‹ฌ๋ฆฌ ๊ฑฐ์˜ ์™„์ „ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ... ์šฐ๋ฆฌ๋Š” ์–ด๋”˜๊ฐ€์— ๊ฐ€๊ณ  ์žˆ์ง€๋งŒ ์ด์ „ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ๊ฐ๋…ํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ง€์†์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์œ ์ง€ ๊ด€๋ฆฌ ์‹œ๊ฐ„์„ ๋งŽ์ด ์žก์•„๋จน์Šต๋‹ˆ๋‹ค. ์กฐ์‚ฌํ•˜๊ณ  ์“ฐ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ฒฐ๊ตญ 30๋ถ„ ๊ฑธ๋ ธ๋„ค์š” ๐Ÿ˜‚

๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์˜ ๋ชฉ๋ก์„ ์‚ดํŽด๋ณธ ํ›„์—๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ๋งŒ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • "fake_server ๋ฐ ์นœ๊ตฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜"(90% ํ•ด๊ฒฐ, ์•ฝ๊ฐ„ ๋‚จ์Œ - ์œ„ ์ฐธ์กฐ).
  • ์›น์‚ฌ์ดํŠธ ๊ฒŒ์‹œ(#1220: ์‚ฌ์†Œํ•œ ๊ฒƒ ํ•˜๋‚˜, ์•„์ฃผ ์‰ฌ์šด ๊ฒƒ ํ•˜๋‚˜, ์ค‘๊ฐ„ ์ž‘์—… ํ•˜๋‚˜ ์ฐธ์กฐ)

์œ„์˜ ๋‹ค๋ฅธ ํ™•์ธ ํ‘œ์‹œ ๋Œ€๋ถ€๋ถ„์€ #1221์˜ ๋…ผ์˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜๋Š” ์ด์ „ IE ๋ฆด๋ฆฌ์Šค(6-10)์™€ ๊ด€๋ จ์ด ์žˆ์œผ๋ฏ€๋กœ ๋ฌด์‹œํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@sinonjs/sinon-core: ์ด์ „ ๋Œ“๊ธ€์—์„œ #1221์˜ ๋…ผ์˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์™„๋ฃŒํ•  ์ˆ˜ ์—†๋Š” ์œ„์˜ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ ˆ๊ฑฐ์‹œ IE ์ง€์›/ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ๊ฑฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
  2. xdomain ๊ณ ์ •

์–ด์จŒ๋“  ๋งŒ์ง€์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ ˆ๊ฑฐ์‹œ IE ๋น„ํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ƒ์„ฑํ•ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” xdomain ๊ฐ€ ์—ญ์‚ฌ์  ๋งค๋ฆฝ์ง€๋กœ ๋๋‚  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ IE ์ „์šฉ CORS์™€ ์œ ์‚ฌํ•œ ํ•ดํ‚น์ด๋ฏ€๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@fatso83 ์•„ํ•˜ํ•˜ํ•˜ํ•˜ ์ฐธ์กฐ๋œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋œ ์˜๊ฒฌ์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ์ด ๋ฆฌ๋ทฐ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

๊ด€๋ จ ์—†์Œ: ์ด๊ฒƒ์˜ ์ผ๋ถ€๊ฐ€ IE6์— ๋Œ€ํ•œ ์ง€์›์„ ํฌ๊ธฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šด์ด ์—†์—ˆ์–ด. ์•„ ๊ธ€์Ž„, c'est la March du progrรจs! /=

์šฐ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ ์‚ฌ์ดํŠธ์—๋Š” ์ž์ฒด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Hey chaps - 2.0์„ "์•ˆ์ •๋œ" sinon ๋ฆด๋ฆฌ์Šค๋กœ ํ‘œ์‹œํ•˜๊ณ  1.x๋ฅผ ์ฃฝ์ด๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? :)

๋งˆ์ง€๋ง‰์œผ๋กœ #1297์„ ์›ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์„ธ์š”.

๋„์ฐฉ ์˜ˆ์ • ์‹œ๊ฐ„? ๋Šฆ์–ด๋„ ๋‹ค์Œ ์ฃผ๊นŒ์ง€๋Š” ๋ฐฐ์†กํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ทธ ๊ธฐ๋Šฅ์„ ์—ฐ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์•„๋ฆ„๋‹ต์Šต๋‹ˆ๋‹ค. <3

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