Sinonã®2.0ãªãªãŒã¹åè£ããªãªãŒã¹ããæºåãšããŠäœãéæãããã§ããïŒ
@mantoni @ fatso83 @cjohansenããã§ã¯ãææ¡ãããã¿ã¹ã¯ã®äžæ¡ãã§ãã ãã®åé¡ãç·šéãããã以äžã«ã³ã¡ã³ãããŠãã¿ã¹ã¯ã®ãªã¹ãããŸãšããŠ2.0ãåºè·ã§ããããã«ããŠãã ããïŒrocketïŒ
sinon.spy
ïŒ920sinon.stub
ïŒ932sinon.mock
ïŒ933useFakeXMLHttpRequest
ãŸã åç
§ãããŠããŸããïŒ1118ãåç
§ïŒsinon.sandbox
ïŒïŒ936ã§è¡ãããäœæ¥ã®å€§éšåïŒïŒ1088sinon.format
移è¡ããŸãïŒãã¹ãã§å¯çµåïŒïŒ967sinon.collection
ïŒ1084assert
ã¹ã€ãŒãïŒ1078ã移è¡ããŸãcall
ã¹ã€ãŒãïŒ1079ã移è¡ããŸãcollection
ã¹ã€ãŒãïŒ1084ã移è¡ããŸãextend
ã¹ã€ãŒãïŒ1085ã移è¡ããŸãmatch
ã¹ã€ãŒãïŒ1086ã移è¡ããŸãmock
ã¹ã€ãŒãïŒ1087ã移è¡ããŸãsandbox
ã¹ã€ãŒãïŒ1088ã移è¡ããŸãspy
ã¹ã€ãŒãïŒ1001ã移è¡ããŸãstub
ã¹ã€ãŒãïŒ1001ã移è¡ããŸãtypeOf
ã¹ã€ãŒãïŒ1085ã移è¡ããŸãutil/core
ã¹ã€ãŒãïŒ998ãïŒ1081ã移è¡ããŸãutil/event
ã¹ã€ãŒãïŒ1115ã移è¡ããŸãutil/fake-timers
ã¹ã€ãŒãïŒ1116ã移è¡ããŸãutil/fake-server
ã¹ã€ãŒãïŒ1118ã移è¡ããŸãutil/fake-server-with-clock
ã¹ã€ãŒãïŒ1118ã移è¡ããŸãutil/fake-xdomain-request
ã¹ã€ãŒãã移è¡ããutil/fake-xml-http-request
ã¹ã€ãŒãïŒ1125ã移è¡ããŸãtest/sinon-test.js
ã¹ã€ãŒãïŒ968ã®å
èš³sinon.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
ã«ããäœæ¥ã«åºã¥ããŠãæ°ããããã¥ã¡ã³ãWebãµã€ããäœæããããšæããŸãã æ¥é±ã®äŒæäžã«ãããã«æ°æéãè²»ãããããšæã£ãŠããŸãã
@mroderickã©ããã«ããã·ã¥ãããäœåãããå Žåã¯ãç§ã«ç¥ãããŠãã ããã ç§ã¯ããã¥ã¡ã³ããæäŒãããšãã§ãããããããŸããïŒ
ãã§ãã¯ããã¯ã¹ãæŽæ°ããŸããã ãMigratesinon.sandboxãããã§ãã¯ããå¿ èŠããããã©ããã¯ããããŸããããå°ãªããšãPRã¯éããããŠããŸãã
@jonnyreeves ïŒ sinon.test
ãåé€ããçç±ãããããŸããã ããã¯ãäœæãããã¹ã¿ããã¯ãªãŒã³ã¢ãããããã¹ãåŸã«èªåçã«ã¹ãã€ãããã¹ãã®åšãã®ãµã³ãããã¯ã¹ã§ãã ããã«ãããå€ãã®beforeEach
ããã³afterEach
é¢æ°ãã人ã
ã軜æžãããŸãã éåžžã«äŸ¿å©ã§ããã¹ããã¬ãŒã ã¯ãŒã¯ãšã¯ã»ãšãã©é¢ä¿ããããŸããã
ãŠãŒã¶ãŒã¯ããããåé€ããŠä»ã®äœãïŒããè¯ãïŒãåªå ããããã«ãããã«ä»£ããç°¡åãªæ¹æ³ã確èªããå¿ èŠããããŸãã
ç§ã¯sinon.testCase
èªåã§äœ¿çšããããšããããŸãããããããããã®APIãBusterJSïŒåãã¹ãã±ãŒã¹ããã¹ãã¹ã€ãŒãã®ããããã£ã§ããïŒã«é©åããMochaïŒåãã¹ãããã¹ãã¹ã€ãŒãã®æ¬äœã§å®è¡ãããå¿åé¢æ°ã§ããïŒã«é©åããªãããã§ãã ïŒã
@ fatso83 sinon.test
ç§ãæ±ããŠããäž»ãªåé¡ã¯ããããsinon.config
ã·ã³ã°ã«ãã³ã«äŸåããŠãããšããäºå®ã§ãã IMHOãŠãŒã¶ãŒã¯ããã¹ããã¬ãŒã ã¯ãŒã¯ã®beofreEach
afterEach
ããã¯ãš
sinon.test
ïŒããã³sinon.testCase
ïŒããããªãã¯APIã«ä¿æããå Žåã 次ã«ããããã®åé¡ã®äž¡æ¹ã«å¯ŸåŠããå¿
èŠããããŸã-é·å¹Žã®ãŠãŒã¶ãŒ/ sinonã®ãµããŒãã§ãããç§ã¯åœŒã®ãããžã§ã¯ãããããã³ã°ããã®ã¯åããŠã§ã-ã©ã®ããã«åæã«éããå¿
èŠããããŸããïŒ
@jonnyreeves OKã 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
ããããã£ã«å²ãåœãŠãã ãã§ããã¹ãã«1è¡äœåã«å«ããã ãã§ãé¢åãªäœæ¥ãæå°éã«æããããšãã§ããŸãã sinon
ãªããžã§ã¯ããïŒ Object.freeze(sinon)
ïŒããæç¹ã§ããªãŒãºããŠããªãããšã確èªããå¿
èŠããããŸã...
@jonnyreeves ïŒ sinon.mock
ã«é¢ããŠ@mroderickã2.0ããªãªãŒã¹ããããŸã§åŸ
ã£ãŠãããããåé€ããããšãææ¡ããããšãèŠããŠããŸãã ãã§ã«éæšå¥šã«ãªã£ãŠããããšãéç¥ããŠããã®ã§ã2.0ãªãªãŒã¹ã®IMHOã®åŸã§åé€ããŠãåé¡ãããŸããã ãã ããCommonJSã¯ãã§ã«ãµããŒããããŠããããã2.0ãªãªãŒã¹ã®_if_ã®åã«åé€ããŠãããŸããŸãããã³ãŒããç¬èªã®ã¢ãžã¥ãŒã«ã«æœåºããŸããã ããããã°ã人ã
ã¯åœŒãããšãŠãåãã§ããã°ã let sinon.mock = require('sinon-mock')
ã§ããã®ã§ãã
sinon.log*
ã«é¢ããŠ
WRTãsinon-test
é€å€ããŠããå Žåãã³ã³ã·ã¥ãŒããŒãæ§æãæäŸã§ããããã«ããå¿
èŠãããããšã«æ³šæããŠãã ããã
sinon.test = require('sinon-test').withConfig({ ... });
ãŸãã¯é¡äŒŒã
sinon-test
ããã±ãŒãžã®äœæäžã«ãå¥ã®å¯èœãªAPIå€æŽãèŠã€ããŸããã sinon.assert
ã«äœãèµ·ããã¹ããã«ã€ããŠã®èãsinon.test
ããã³sinon.testCase
ãšäžç·ã«sinon.test
sinon-test
ããã±ãŒãžã«ç§»è¡ããæ¹ãé©ããŠããå¯èœæ§ããããŸããïŒ
@ fatso83 @mantoni @cjohansen; sinon-test
ããã±ãŒãžã®åäœäžã®ãã«ããã¬ãã¥ãŒããæºåãã§ããŠããŸã-空ã®gitãªããžããªãsinonjs/sinon-test
ã§åæåããŠãPRãäžããŠãã ããã
ããããšã
æ©ãã£ãïŒ https://github.com/sinonjs/sinon-test
@cjohansen空ã®READMEãããã·ã¥ããŠãã ããã çŸåšã®ç¶æ ã§ã¯PRãäžããããšãã§ããªãããã§ãã
çµãã
ãããã§ãPRãçºçããŸãã-ãã£ãŒãããã¯ãæè¿ããŸãïŒ https ïŒ
@mroderickã©ããã«ããã·ã¥ãããäœåãããå Žåã¯ãç§ã«ç¥ãããŠãã ããã ç§ã¯ããã¥ã¡ã³ããæäŒãããšãã§ãããããããŸããïŒ
@spinningarrowããã¯çŽ æŽãããããšã§ãã æ®ãã®äœæ¥ãšã¯å¥ã«ããã远跡ããããã«ïŒ991ãäœæããŸããã ç§ã¯ãããç§ã®èãã§è¿æ¥äžã«æŽæ°ããã§ãããããããŠç§ãã¡ã¯ãããããããåãããšãã§ããŸãã
ç§ãã¡ã¯æã ã¢ãã¯ã«é¢é£ããããã€ãã®åé¡ãæ±ããŠããŸãã @jonnyreevesãå®éã«ã¢ãžã¥ãŒã«ãæœåºãããšãã倧å€ãªäœæ¥ãè¡ã£ãã®ã§ãã¢ãžã¥ãŒã«ããªããžããªã«ç§»åããã®ã¯æå³ããããŸãããïŒ æ¬¡ã«ãã¢ãã¯ã«é¢é£ãããã¹ãŠã®ãã£ã¹ã«ãã·ã§ã³ãããã«ç§»åããããã§åé¡ãéããããšãã§ããŸãã ããã¯äž»ã«ç®¡çã®è² æ ã軜æžããããã§ãã
ç§ãã¡ã¯æã ã¢ãã¯ã«é¢é£ããããã€ãã®åé¡ãæ±ããŠããŸãã @jonnyreevesãå®éã«ã¢ãžã¥ãŒã«ãæœåºãããšãã倧å€ãªäœæ¥ãè¡ã£ãã®ã§ãã¢ãžã¥ãŒã«ããªããžããªã«ç§»åããã®ã¯æå³ããããŸãããïŒ æ¬¡ã«ãã¢ãã¯ã«é¢é£ãããã¹ãŠã®ãã£ã¹ã«ãã·ã§ã³ãããã«ç§»åããããã§åé¡ãéããããšãã§ããŸãã ããã¯äž»ã«ç®¡çã®è² æ ã軜æžããããã§ãã
ããã¯ããã®ãªããžããªãéçºããŒã«ãªã©ãšåæããããšãã管çäžã®è² æ
ãæå³ããŸãã
ãããããæåã«ç°¡åãªå
±æéçºããŒã«ãã»ããã¢ããããå¿
èŠããããŸããïŒ ccïŒ @mantoni
@mroderick @ fatso83 OKã2.0ããã¢ããåºãããšãã§ãããã©ããèŠãŠã¿ãŸãããã
ãã®åé¡ã®æŠèŠãæŽæ°ããŠããã¹ãŠã®æªè§£æ±ºã®ç§»è¡ãšèŠãªããããã®ãã«ããŒããŸããïŒãããèªãã§ããå Žåã¯ããã¹ãã¹ã€ãŒãã®CJSåãå«ããŠãã ãã-ãã«ãïŒïŒ-ã芧ã«ãªããåæããå Žåã¯ãç¥ãããã ããååºããäœåã
ããã«ãç§ã¯ä»¥äžã«ã€ããŠã³ã³ã»ã³ãµã¹ãåŸãããšæããŸãã
typeOf
ãšextend
ããããªãã¯ïŒ sinon.
ïŒAPIããåé€ããå¿
èŠããããŸããããããšãïŒç§ãæšæž¬ããïŒAPIã®ææ°åãåããSinon3.xãåŸ
ã€å¿
èŠããããŸããçããããããšãã
@jonnyreeves ïŒããªãã¯ç¢ºãã«ä»å€å¿ããèã§ããðºã ç§ã®åã«ã¯é·ãäŒæãããã®ã§ããã¹ãã¹ã€ãŒãã®åªãã移è¡ã確å®ã«æäŒãããšãã§ããŸãïŒä»¥äžã«ãããããããããŸãïŒã
ããªãã®ãã€ã³ãã«ã€ããŠïŒ
sinon-ie
ããã±ãŒãžå
šäœïŒ IE9ã¯ãXDRãšåŒã°ããå¥åŠãªCORSã®ä»£æ¿æ段ãšãšãã«åºè·ãããŠããŸããã 2012幎ããåã«ãªãªãŒã¹ãããIEããŒãžã§ã³ã®ãµããŒãããŸã ç®æããŠãã人ãããã°ããã€ã§ã1.xãã©ã³ãã䜿çšã§ãããšæããŸãã XDMã§äœãåç
§ããŠãããããããŸãããïŒ ã©ã®ãã©ãŠã¶ããŒãžã§ã³sinon-ie
ãå¿
èŠãããããªãã®ã§ãããã±ãŒãžãå¿
èŠãªãããšã«ã€ããŠããŸã倧ããã§ã¯ãããŸããã ç§ãã¡ã¯ãã®çµæã確信ããå¿
èŠããããŸããããã®ã¹ããŒã¿ã¹ãäœã§ãããèå³ããããŸããïŒ çŽ6ãæåããããŸãé²æ©ããŠããªãããã§ãã ç§ã¯çŸåšãããŸããŸãªçç±ã§ãã¬ãªãªãŒã¹ã«äŸåããŠããŸãïŒã·ã³ãã«ãµããŒãã®æ©èœã¯å·šå€§ãªãã®ã§ãïŒâããã·ã¥ããã€ããã¯ãããŸããããåçŽãª 'ããããŸã<3
@ELLIOTTCABLEè³éããªãããã
ã§ããã...ç§ãã¡ã¯ã©ããã«å°éããŠããŸããã以åã®ããŒãžã§ã³ã®ãã°ä¿®æ£ãç£èŠããæ°ããæ©èœã絶ããæäŸããŠãããããã¡ã³ããã³ã¹ã«å€ãã®æéãè²»ãããŠããŸãã ããã調ã¹ãŠæžãã ãã§ãæçµçã«ã¯30åããããŸããð
åºæ¬çã«ãäžèšã®ãªã¹ãã確èªããåŸãæ®ã£ãŠãã2ã€ã®äž»èŠãªåé¡ããããŸãã
äžèšã®ä»ã®éããŠããªããã§ãã¯ããŒã¯ã®ã»ãšãã©ã¯ãïŒ1221ã§ã®è°è«ã«åºã¥ããŠããµããŒããããªããšç¢ºä¿¡ããŠããå€ãIEãªãªãŒã¹ïŒ6-10ïŒã«é¢é£ããŠãããšæããŸãã®ã§ãç¡èŠããŠããŸããŸããã ä»ãããæ±ããŸãã
@ sinonjs / sinon-coreïŒåã®ã³ã¡ã³ãã§ãïŒ1221ã®è°è«ã«åºã¥ããŠãå®äºã§ããªãå¯èœæ§ã®ããäžèšã®åé¡ãããããšã«æ°ã¥ããŸããã
ãšã«ãã觊ããªãå Žåã¯ãã¬ã¬ã·ãŒIEããããåé€ããPRãäœæããŠãããŸããŸãããïŒ xdomain
ã¯ãã»ãšãã©ãIEã®ã¿ã®CORSã«äŒŒãããã¯ã ã£ãã®ã§ãåé€ã§ããã®ã§ãæŽå²çãªåãç«ãŠå°ã«ãå
¥ãå¯èœæ§ããããšæããŸããïŒ
@ fatso83ãããkã åç §ãããŠããåé¡ã«é¢ããæŽæ°ãããã³ã¡ã³ããèŠéããŸããã ç§ã®ããã«ãããã¬ãã¥ãŒããããšãããªãã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãïŒ
ç¡é¢ä¿ïŒããã®äžéšã¯IE6ã®ãµããŒããæŸæ£ããŠããããã§ãã ããã¯æ®å¿µã§ãã ãããããã§ãããc'est lamarcheduprogrÚsïŒ / =
ç§ãã¡ã¯åºæ¬çã«ããã«ããŸããããã¥ã¡ã³ããµã€ãã«ã¯ç¬èªã®åé¡ããããŸãã
ã¡ãã£ãšãã£ããã¹-2.0ããå®å®ãããã·ãã³ãªãªãŒã¹ãšããŠããŒã¯ããŠ1.xã殺ãã®ã劚ãããã®ã¯ãããŸããïŒ :)
æåŸã«ïŒ1297ã欲ããã£ããšæããŸãã
ãã®äžã§ETAïŒ æ¥é±ãŸã§ã«åºè·ããããšããå§ãããŸããåºè·ãããŠããªãå Žåã¯ããã®1ã€ã®æ©èœã延æããŸãã
ããªããã¡ã¯çŸããã§ãã <3
æãåèã«ãªãã³ã¡ã³ã
npm install sinon-test
ãvar sinonTest = require('sinon-test')(config);
ãããªãã®ã¯ãŸãšããªä»£æ¿åã«ãªããšæããŸãã