Jest 23: ð¥ è¶ é«éã§æ¥œãããã¹ãäœéš
ãã®ããŒãžã¯ PageTurner AI ã§ç¿»èš³ãããŸããïŒããŒã¿çïŒããããžã§ã¯ãå ¬åŒã®æ¿èªã¯ãããŸããã ãšã©ãŒãèŠã€ããŸãããïŒ åé¡ãå ±å â
æ¬æ¥ãJestå²äžæå€§ã®ã¡ãžã£ãŒãªãªãŒã¹ãšãªãJest 23ã®å ¬éãçºè¡šã§ããããšã倧å€å¬ããæããŸãïŒ100å以äžã®ã³ã³ããªãã¥ãŒã¿ãŒãšå ±ã«ãæ°å€ãã®æ°æ©èœãšãã°ä¿®æ£ãæäŸããŸãããJavaScriptãã¹ããæ¥œãããã®ã«ããããã«ååããŠãã ãã£ãã³ãã¥ããã£ã®çæ§ã«æè¬ããŸãã
ãŸããBabelãšwebpackãJestã³ãã¥ããã£ãžæè¿ããããŸãïŒMochaããJest 23 Betaã«ç§»è¡ããwebpackã¯ããã¹ãã¹ã€ãŒãå šäœã®å®è¡æéã13å以äžãã2å20ç§ãž6åãççž®ããããšã«æåããŸããã#blazingmeansgood
以äžã«Jest 23ã®äž»ãªãã€ã©ã€ããšç Žå£ç倿Žã玹ä»ããŸãã
å šãªã¹ãã¯å€æŽå±¥æŽãã芧ãã ããã
ã€ã³ã¿ã©ã¯ãã£ãã¹ãããã·ã§ããã¢ãŒãâ
æ°ãã«ããã©ã«ãã®ãŠã©ããã¡ãã¥ãŒãªãã·ã§ã³ãšããŠãã€ã³ã¿ã©ã¯ãã£ãã¹ãããã·ã§ããã¢ãŒããã远å ããŸããããã®ã¢ãŒãã§ã¯ã倱æããã¹ã€ãŒãããšã«å倱æã¹ãããã·ã§ãããã¹ãããå®è¡ãã倱æããã¹ãããã·ã§ããã確èªããªããåå¥ã«æŽæ°ãããã¹ãããããããéžæã§ããŸãã

ã€ã³ã¿ã©ã¯ãã£ãã¹ãããã·ã§ããã¢ãŒãã®è©³çްã¯ãã¡ãããåç §ãã ããã
ã¹ãããã·ã§ããããããã£ãããã£ãŒâ
ã¹ãããã·ã§ãã察象ã®ãªããžã§ã¯ãã«ã¯ãæ¥ä»ãIDãªã©ã®çæå€ãå«ãŸããããšããããããŸããJestã§ã¯ä»åŸãã¹ãããã·ã§ãããããã£ãŒã«ç¹å®ã®å€ã§ã¯ãªãããŒã¿æ§é ãæå®ããããããã£ãæž¡ããããã«ãªããŸããããããã®ããããã£ãããã£ãŒã¯ã·ãªã¢ã©ã€ãºåã«æ€èšŒããïŒå€ã®ä»£ããã«ãããã£ãŒã¿ã€ããèšé²ãããïŒããã¹ãå®è¡éã§äžè²«æ§ã®ããã¹ãããã·ã§ããçµæãåŸãããŸãã

è©³çŽ°ã¯æŽæ°ãããtoMatchSnapshotããã¥ã¡ã³ããŸãã¯ããããã£ãããã£ãŒã¬ã€ããã芧ãã ããã
ã«ã¹ã¿ã éåæãããã£ãŒâ
expect.extendsã§éåæãããã£ãŒããµããŒãããŸã ãïŒéåæãããã£ãŒã¯Promiseãè¿ãããããããã£ãŒã®è§£æ±ºãawaitã§åŸ
æ©ã§ããŸãã䜿çšäŸïŒ

ããã¥ã¡ã³ãã¯ãã¡ãããã
ã«ã¹ã¿ã é察称ãããã£ãŒâ
é察称ãããã£ãŒã¯ãé察称çãªç䟡æ§ã®ã¿ãèæ ®ãããå Žåã«æé©ãªããŒã«ã§ããäŸãã°å·ŠèŸºãå³èŸºã®ããããã£ã®éšåéåãæã€ãªããžã§ã¯ããšæåŸ ãããå®å šäžèŽã§ã¯ãªãå Žåãªã©ã§ããJestã¯æšæºã§å€ãã®é察称ãããã£ãŒãæäŸããŠãããä»åã«ã¹ã¿ã é察称ãããã£ãŒãæ°ãã«å°å ¥ããŸãã

Jest Eachâ
@mattphillipsioæ°ãjest-eachããã±ãŒãžãJestã³ã¢ã«å¯èŽããŠãã ãããŸããïŒMattãããããããšãããããŸãïŒïŒãjest-eachã¯mocha-eachãšSpockããŒã¿ããŒãã«ã«è§Šçºãããã©ã€ãã©ãªã§ããã¹ãã±ãŒã¹ã®ããŒãã«ãå®çŸ©ããæå®ãããåå€ã䜿çšããŠåè¡ããšã«ãã¹ããå®è¡ã§ããŸãããã¹ãŠã®describeãštestã®ããªãšãŒã·ã§ã³ã§ãé
ååãšãã³ãã¬ãŒããªãã©ã«ã®äž¡æ¹ããµããŒãããŸããããã¥ã¡ã³ãã¯ãã¡ãã§ãJest 23æªäœ¿çšã®æ¹ã®ããã«jest-eachã¯åå¥ã«å
¬éãç¶ããŸãïŒ

PrettierãããŒãã«ãã©ãŒãããã®ä¿®æ£ãè¿ éã«è¡ã£ãŠãããããšã«å¿ããæè¬ããŸãïŒPrettier 1.13åç §ïŒïŒ
æ°ãããããã£ãŒâ
ã³ã¢ã«ãããã£ãŒã远å ããã®ã¯ãJestã³ãã¥ããã£ã®å€§å€æ°ã«ãšã£ãŠæçšã ãšç¢ºä¿¡ããå Žåã®ã¿ã§ãããã»ãšãã©ã®ãããã£ãŒã¯ã³ãã¥ããã£ã«å§ããŠããŸãïŒjest-extendedåç §ïŒããããäžéšã®ãããã£ãŒã¯ã³ã¢ã«æ¡çšãããJest 23ã§ä»¥äžã远å ãããŸããïŒ
-
nthCalledWith
-
toReturn
-
toReturnTimes
-
toReturnWith
-
lastReturnedWith
-
nthReturnedWith
-
toStrictEqual

æŽæ°ãããexpectããã¥ã¡ã³ãã¯ãã¡ãããã芧ãã ããã
ãã³ã°ãããã¹ãã®ãããã°â
Issueãã©ãã«ãŒã§ããèŠãããåé¡ãšããŠããã¹ãå®è¡åŸã«ãJestããã³ã°ããããšããå ±åããããŸããããã¯éåžžãã¢ããªã±ãŒã·ã§ã³ã³ãŒãããã³ãã«ãéæŸãããJestã®çµäºã劚ããŠããããšãåå ã§ãããããŸã§ã¯--forceExitã§å¯Ÿå¿ããŠããŸããïŒéæšå¥šïŒã
ãããã®åé¡ããããã°ãããããããããJestãçµäºããªãå Žåãæ€åºããããã«ãªããŸããïŒ

ããã«ããªãŒãã³ç¶æ
ã®ãã³ãã«ãèŠã€ããããã®æ°ãã©ã°--detectOpenHandlesãæäŸããŸãïŒ

æŽæ°ãããCLIããã¥ã¡ã³ãã¯ãã¡ããã芧ãã ããã
ãŠã©ããã¢ãŒããã©ã°ã€ã³â
ãŠã©ããã¢ãŒãã·ã¹ãã ãå®å šã«æžãçŽããã«ã¹ã¿ã ãã©ã°ã€ã³ã®è¿œå ãå¯èœã«ããŸããããŠã©ããã¢ãŒããã©ã°ã€ã³ã«ãããJestã€ãã³ãã«ããã¯ãããããŠã©ããã¢ãŒãã¡ãã¥ãŒã«ã«ã¹ã¿ã ãªãã·ã§ã³ã远å ã§ããããã«ãªããŸãããæšæºã®ãŠã©ããã¢ãŒãããã³ããã¯ãã¹ãŠãã®ã·ã¹ãã ã®ãã©ã°ã€ã³ãšããŠå®è£ ãããŠãããèªäœæ¹æ³ã¯ãã¡ãã§å ¬éããŠããŸãã
ãã®å€æŽã«ãããjest-watch-typeaheadãéããŠã¿ã€ãã¢ããããµããŒãããŠã©ããã¢ãŒããã©ã°ã€ã³ãšããŠåŸ©æŽ»ããŸããïŒ

ããã¥ã¡ã³ããšã€ã³ã¹ããŒã«æ¹æ³ã¯jest-watch-typeaheadãã芧ãã ãããæ°ãããŠã©ããã¢ãŒããã©ã°ã€ã³ã·ã¹ãã ãšjest-watch-typeaheadãã©ã°ã€ã³ãæäŸããŠããã@rogeliogã«å¿ããæè¬ããŸãïŒ
ç Žå£ç倿Žâ
ä»ã®ã¡ãžã£ãŒãªãªãŒã¹ãšåæ§ãå°æ¥ã®å€§èŠæš¡ãªå€æŽãå¯èœã«ãããã¹ãäœéšãæ°æ¬¡å ãžåŒãäžãããããããã€ãã®ç Žå£ç倿Žãå ããŸãããäž»ãªå€æŽç¹ã¯ä»¥äžã®éãã§ãïŒ
-
ãã¹ãã®èª¬ææãšé¢æ°ã®å¿ é å: 颿°ãšèª¬ææã®äž¡æ¹ãå«ãŸãªããã¹ãã¯å€±æããããã«ãªããŸããã
-
Reactã¹ãããã·ã§ããããã®undefinedããããã£åé€: ã¹ãããã·ã§ããã®å°ååãšReactã®é©åãªåäœãå®çŸã
-
éæšå¥šæ©èœã®åé€: mapCoverageã¯äžèŠã«ãªã£ãããåé€ãããã«
jest.genMockFunctionãšjest.genMockFnã¯jest.fnãšåçã®ããåé€ã -
ã¹ãããã·ã§ãã倱ææã®åå衚瀺: 倱æã¡ãã»ãŒãžã«ã¹ãããã·ã§ããåïŒæå®ãããŠããå ŽåïŒã远å ãã倱æããã¹ãããã·ã§ããã®ç¹å®ã容æã«ããŸããã
-
ã¢ãã¯ã¿ã€ã ã¹ã¿ã³ãã®çœ®æ: è€æ°ã®ã¢ãã¯ãåãã¿ã€ã ã¹ã¿ã³ããæã€å¯èœæ§ããããããåŒã³åºãé åºã®ãã¹ããäžå¯èœã ã£ãåé¡ã解決ãããããinvocationCallOrderã§ã¿ã€ã ã¹ã¿ã³ãã眮æããŸããã
-
ã¢ãã¯ã¹ãããã·ã§ãããžã®çµæè¿œå : ã¢ãã¯é¢æ°ã®åŒã³åºãçµæãã¹ãããã·ã§ããã«è¿œå ããåŒã³åºããšå®è¡çµæã®äž¡æ¹ã远跡ã§ããããã«ããŸããã
ãã®ä»ã®æ¹åç¹â
-
ãŠã©ããã¢ãŒãã®ã«ãã¬ããž:
--onlyChangedã--findRelatedTestsäœ¿çšæããã³ãŠã©ããã¢ãŒãã§ã¯ããã¹ã察象ãã¡ã€ã«ã®ã¿ã®ã«ãã¬ããžèšæž¬ã«éå®ãããŸããã -
ããŒãžã§ã³å¥ããã¥ã¡ã³ã: Jest 22以éã®åãã€ããŒããŒãžã§ã³ããšã®ããã¥ã¡ã³ãã远å ããããã¥ã¡ã³ããããJest X.X+ãå¿ èŠããšããèšè¿°ããã¹ãŠåé€ããŸããã
-
ã¹ãããã·ã§ãããµããªãŒã®æ¹å: 廿¢äºå®ã®ã¹ãããã·ã§ããã«é¢ããæ å ±ãããåãããããããããããµããªãŒåºåãå šé¢å·æ°ããŸããã
-
ã¹ã¿ãã¯ãã¬ãŒã¹ã®æ¹å: éåæãšã©ãŒãã¿ã€ã ã¢ãŠããšã©ãŒãexpect.assertionsããšã©ãŒä»¥å€ã®ã¹ããŒå¯Ÿè±¡ã«ã€ããŠã¹ã¿ãã¯ãã¬ãŒã¹ã远å ãã³ãŒããã¬ãŒã ã®ã«ã©ã 衚瀺ãå®è£ ããŸããïŒ
-
React 16ãµããŒãã®åŒ·å:
React.FragmentãReact.forwardRefãReact.createContextã®ã¹ãããã·ã§ãããµããŒãã远å ã -
ã¢ãã¯ã®æ»ãå€ã»ã¹ããŒå€ã®è¿œè·¡: åã¢ãã¯åŒã³åºãã®æ»ãå€ãŸãã¯ã¹ããŒãããå€ãå«ã
mock.resultsã远å ã -
Blazing ð¥: Jestããè¶ é«éãã§ããããšã瀺ãblazingãããžãREADMEã«è¿œå ããŸããã
Jestãµãããâ
å é±ãJestã³ã¢ããŒã ã¯Facebookãã³ãã³ã§Jestãµ ããããéå¬ãJest 23ã®ãªãªãŒã¹äœæ¥ãè¡ããJestãªãŒãã³ã³ã¬ã¯ãã£ããçºè¡šãããšãšãã«ã以äžã®è¬æŒãè¡ããŸããïŒ
-
Christoph Nakazawa â ã€ã³ãã
-
Aaron Abramov â æå³ã®ãããã¹ããæžã
-
Rick Hanlon II â Jest 23ã«ãããè¶ é«éã¹ãããã·ã§ãããã¹ã
-
Simen Bekkhus â Jestã®çŽ æŽããããšã©ãŒã¡ãã»ãŒãž
-
Matt Phillips â ã³ãã¥ããã£ããã±ãŒãžã§Jestäœéšãã¬ãã«ã¢ãã
-
Michele Bertoli â ãããããã®ãã¹ãããã·ã§ããå
-
Jordan Eldredge â WebampïŒæš¡å£ãéããŠåŠã¶
å šè¬æŒã¯ãã¡ãã§ã芧ããã ããŸãã
倿°ã®ãåå ãããã ãããã³ãã³ãæ ç¹ãšããã³ãã¥ããã£ã¡ã³ããŒãšçŽæ¥äº€æµããæ©äŒãåŸãŸããããåå ã»ç¶ç¶çãªãµããŒãã«å¿ããæè¬ç³ãäžããŸãïŒæ¬¡åã®æçš¿ã§ã¯ãJestãªãŒãã³ã³ã¬ã¯ãã£ããšä»åŸã®èšç»ã«ã€ããŠè©³ããã玹ä»ããŸãã
ä»åã®ãªãªãŒã¹ããJavaScriptã³ãã¥ããã£ã®çæ§ã®ãååãªãã«ã¯å®çŸã§ããŸããã§ãããJavaScriptãã¹ãã®æ¹åã«å ±ã«åãçµããæ©äŒã«æ·±ãæè¬ããŠããŸããJestãžã®è²¢ç®ããåžæã®æ¹ã¯ãé æ ®ãªãGitHubãŸãã¯DiscordãŸã§ãåãåãããã ããã
