Jest ãã¹ãã®ãã¬ãŒã ã¯ãŒã¯ã®èšå®
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- Jest ãã¹ããã¬ãŒã ã¯ãŒã¯ã«ã€ããŠèª¬æããã
- Node.js ãš npm ã®åœ¹å²ã説æããã
- Node.js ãš npm ãã€ã³ã¹ããŒã«ããã
- Salesforce DX ãããžã§ã¯ãã« @salesforce/sfdx-lwc-jest JavaScript ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããã
å§ããåã«
ãã®ã¢ãžã¥ãŒã«ãåè¬ããããã«ã¯ãSalesforce CLIãVisual Studio CodeãVisual Studio Code åã Salesforce æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ãããæŽæ°ãããŠããå¿ èŠããããŸãããããã®åææ¡ä»¶ãæºããããã«ããã¯ã€ãã¯ã¹ã¿ãŒã: Salesforce DXãããã¯ã€ãã¯ã¹ã¿ãŒã: Salesforce éçºã®ããã® Visual Studio Codeãããã¯ã€ãã¯ã¹ã¿ãŒã: Lightning Web ã³ã³ããŒãã³ãããããžã§ã¯ããä¿®äºããããã§åè¬ããããšããå§ãããŸãã
ããã§ã¯ããã¹ãäž»å°åéçº (TDD) ã¢ãããŒãã䜿çšãããã¹ãããã³ã³ããŒãã³ããèšè¿°ããåã« Jest ãã¹ããèšè¿°ããŸãããã®ããåãã¹ãã¯æå倱æããŸããã ãã®åŸã§ãJest ãã¹ãã«åæ Œããããã«ã³ã³ããŒãã³ããæŽæ°ããŸãã
Salesforce DX ãããžã§ã¯ãã®äœæ
ãã¹ãã«åããããåã®æåã®ã¹ãããã¯ãLightning Web ã³ã³ããŒãã³ããš Jest ãã¹ããä¿åããããã® Salesforce DX ãããžã§ã¯ããäœæããããšã§ãã
- Visual Studio Code ã§ãCtrl+Shift+P (Windows) ãŸã㯠Cmd+Shift+P (macOS) ãæŒããŠãã³ãã³ããã¬ãããéããŸãã
-
ãsfdxããšå ¥åããŸãã
-
[SFDX: Create Project (SFDX: ãããžã§ã¯ããäœæ)] ãéžæããŸãããã®ãªãã·ã§ã³ã衚瀺ãããªãå Žåã¯ãå
ã«é²ãåã«ãã®ã¢ãžã¥ãŒã«ã® 1 ã€ç®ã®åå
ã®åææ¡ä»¶ãæºãããŠãã ããã
-
[Standard (æšæº)] ãéžæããŸãã
- ãããžã§ã¯ãåã«
ãtest-lwcããšå ¥åããŸãã
-
Enter ããŒãæŒããŸãã
- ãããžã§ã¯ããä¿åãããã©ã«ããŒãéžæããŸãã
-
[Create Project (ãããžã§ã¯ãã®äœæ)] ãã¯ãªãã¯ããŠãVisual Studio Code ã®æ°ãããŠã£ã³ããŠãéããŸã§åŸ
æ©ããŸãã
-
[View (衚瀺)] ãã¯ãªãã¯ããŠã[Terminal (ã¿ãŒããã«)] ãéžæããŸããVisual Studio Code å
ã«ã¿ãŒããã«ãŠã£ã³ããŠãéããŸãããã®ã¿ãŒããã«ã¯ããã©ã«ãã§ãããžã§ã¯ãã®æäžäœãã£ã¬ã¯ããªã«èšå®ãããŸããåŸã
ãã®ãããžã§ã¯ãã®äœæ¥ãã£ã¬ã¯ããªã§ã³ãã³ããå®è¡ããããã«ã¿ãŒããã«ãå¿
èŠã«ãªããŸãã
Node.js ãš npm ãšã¯?
Node.js 㯠Chrome ã® V8 JavaScript ãšã³ãžã³äžã«æ§ç¯ããã JavaScript ã©ã³ã¿ã€ã ã§ãnpm ã¯åå©çšå¯èœãªã³ãŒãã¢ãžã¥ãŒã«ãé ä¿¡ããããã±ãŒãžãããŒãžã£ãŒã§ããNode.js ãš npm ã®äžçã§ã¯ãããããåå©çšå¯èœãªã³ãŒãã¢ãžã¥ãŒã«ã Node ã¢ãžã¥ãŒã«ãšãããŸããNode ã¢ãžã¥ãŒã« (è€æ°ã®ãããžã§ã¯ãã«ç°¡åã«é ä¿¡ã§ããåå©çšå¯èœãªã³ãŒã) ã«è¿ã Salesforce çšèªã¯ãããã¯è§£é€æžã¿ããã±ãŒãžã§ãã
Node.js ãš npm ã¯ãæšä»ã® JavaScript éçºè ã®å€ããç¿åŸããŠãã人æ°ã®ããŒã«ã§ããææ°ã® JavaScript ã«ã€ããŠã®è©³çްã¯ããJavaScript ã®æäœæ¹æ³ããã¬ã€ã«ãåç §ããŠãã ããã
Node.js ãš npm ã®ã€ã³ã¹ããŒã«
Jest 㯠Node ã¢ãžã¥ãŒã«ã§ããããã䜿çšããããã«ã¯ Node ãš npm ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸããã§ã¯ãã£ãŠã¿ãŸãããã
-
https://nodejs.org/en/download/ ãã Node.js ãã€ã³ã¹ããŒã«ããŸããLTS (é·æãµããŒã) ããŒãžã§ã³ã䜿çšããããšããå§ãããŸãã
- Node.js ãã€ã³ã¹ããŒã«ãããããšã確èªããŸããå
ã»ã©éãã Visual Studio Code ã®ã¿ãŒããã«ã«æ¬¡ã®ã³ãã³ããå
¥åããŸãã
node --version
v16.13.0以éã®ããŒãžã§ã³ã®åºåã衚瀺ãããŸãã
Node.js ãã€ã³ã¹ããŒã«ãããšãnpm ãèªåçã«ã€ã³ã¹ããŒã«ãããŸãã
ã¿ãŒããã«ã§æ¬¡ã®ã³ãã³ããå ¥åããŸãã
-
npm --version
8.1.0以éã®ããŒãžã§ã³ã®åºåã衚瀺ãããŸããnpm ãæŽæ°ããããšããå§ãããŸãã
Jest ãšã¯?
Jest 㯠JavaScript ãã¹ããèšè¿°ããè±å¯ãªæ©èœãåãã匷åãªããŒã«ã§ãããJest ã¯ã³ãŒãã«ããŒçæ å ±ãåéã§ããè€éãªé£åé¢ä¿ãããã¹ããåãé¢ãããã®ã¢ãã¯ããµããŒãããŠããŸããJest ãã¹ãã¯ãã©ãŠã¶ãŒã§å®è¡ãããããšããçµç¹ã«æ¥ç¶ãããããšããªããããè¿ éã«åŠçãããŸããã©ã® Lightning Web ã³ã³ããŒãã³ãããJest ã䜿çšããŠåäœãã¹ããèšè¿°ããŸããLightning Web ã³ã³ããŒãã³ãã« Jest ãã¹ããå®è¡ããã«ã¯ãSalesforce DX ãããžã§ã¯ãã« @salesforce/sfdx-lwc-jest Node ã¢ãžã¥ãŒã«ãå¿ èŠã§ãã
sfdx-lwc-jest Node ã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«
@salesforce/sfdx-lwc-jest Node ã¢ãžã¥ãŒã«ã§ã¯ãLightning Web ã³ã³ããŒãã³ãã® Jest ãã¹ããèšè¿°ããŠå®è¡ãããããã°ããããšãã§ããŸããSalesforce CLI ã䜿çšãããšãJest ãšãã®é£åé¢ä¿ããããžã§ã¯ãã«ç°¡åã«ã€ã³ã¹ããŒã«ã§ããŸãã
- ã³ãã³ãã©ã€ã³ããæ¬¡ã®ã³ãã³ããå®è¡ããŠãCLI ãé©åã«ã€ã³ã¹ããŒã«ãããŠããŠææ°ããŒãžã§ã³ã§ããããšã確èªããŸãã
sf update
cli:Updating CLI...ã®ãããªåºåãè¿ãããŸããâ
Visual Studio Code ã¿ãŒããã«ã® Salesforce DX ãããžã§ã¯ãã®æäžäœãã£ã¬ã¯ããªã§ã次ã®ã³ãã³ããå®è¡ããŸãã
-
ãã®ã³ãã³ã㯠npm ãš @salesforce/sfdx-lwc-jest ããããžã§ã¯ãã«ã€ã³ã¹ããŒã«ããŸããæ¬¡ã®ãããªçµæã«ãªããŸã:
sf force lightning lwc test setup

- ãã®ããã»ã¹ã§äžå®ã®è匱æ§ãæ€åºãããå¯èœæ§ããããŸããã ããã§ã¯é¢ä¿ãããŸãããããã«è¡šç€ºãããè匱æ§ã¯ããã®ã¢ãžã¥ãŒã«ã§æ±ããŠãããã®ã§ã¯ãããŸããã
Jest ãã¹ãã®å®è¡
ãããŸã§é 調㫠Salesforce DX ãããžã§ã¯ããèšå®ãããã®ã¢ãžã¥ãŒã«ã®åŸåã§èšè¿°ãã Jest ãã¹ããå®è¡ã§ããããã«ãªããŸãããããã§ãã¹ãŠèšå®ããããããJest ãã¹ããæ°éãã®æ¹æ³ã§å®è¡ã§ããŸããããšãã°ãã¹ã¯ãªãããçŽæ¥ã³ãŒã«ãããnpm ã³ãã³ãã䜿çšãããVisual Studio Code ã®ã¯ãªãã¯æäœã䜿çšãããªã©ã®æ¹æ³ããããŸãããŸãã1 ã€ã®ãã¹ããå®è¡ããããšãããã¡ã€ã«ããããžã§ã¯ãã®ãã¹ãŠã®ãã¹ããå®è¡ããããšãå¯èœã§ããããã«ã¯ããã¹ããã«ããŒããã³ãŒãã倿Žããããšãã«èªåçã«ãã¹ããå®è¡ããããšãã§ããŸãã
ã§ã¯ãJest ãã¹ããå®è¡ããããŸããŸãªæ¹æ³ãèŠãŠãããŸãããã
sfdx-lwc-jest Node ã³ãã³ã
次㮠Node ã³ãã³ãã䜿çšãããšãã¹ã¯ãªãããã€ã³ã¹ããŒã«ãããŠãããããžã§ã¯ãå ã®å ŽæããçŽæ¥ã¹ã¯ãªãããå®è¡ã§ããŸãã
- Visual Studio Code ã¿ãŒããã«ã§ãSalesforce DX ãããžã§ã¯ãã®æäžäœãã£ã¬ã¯ããªã«æ¬¡ã®ã³ãã³ããå
¥åããŸãããŸã Jest ãã¹ããååšããªãããã
node node_modules/@salesforce/sfdx-lwc-jest/bin/sfdx-lwc-jest
No tests found, exiting with code 1(ãã¹ããèŠã€ãããŸãããã³ãŒã 1 ã§çµäºããŸã) ã®ãããªåºåã衚瀺ãããŸãã
å¥œèª¿ãªæ»ãåºãã§ãããããã§èªååã䜿çšãããšããã«äŸ¿å©ã«ãªãããšãèŠãŠã¿ãŸãããã
Package.json ãš npm ã䜿çšãããã¹ãã¹ã¯ãªããã®èªåå
åäœãã¹ããèšå®ããç®çã¯ãéçºãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã»ã¹ã®äžã§ãéçºè ãåäœãã¹ããèšè¿°ãå®è¡ããããããããšã§ããã®çµæãã°ãæ©ã段éã§ç¹å®ãããä¿®æ£ãããããšã«ãªããŸããäžèšã®ãããªé·ãã³ãã³ããèšæ¶ããŠäœåºŠãå ¥åããªããã°ãªããªãã®ã§ããã°ããã®ç®çã«åããŸããããã§åœ¹ã«ç«ã€ã®ãèªååã§ãã
npm ã¯æè»ã§åªããã¹ã¯ãªããèªååæ©èœãæšæºè£
åããŠããŸããå
ã»ã© install ãå®è¡ããéã«ããããžã§ã¯ãã®ã«ãŒãã«ãã package.json ãã¡ã€ã«ã® scripts ããããã£ã«äžé£ã®ãªãã·ã§ã³ã远å ãããŠããŸãã
{
"name": "test-lwc",
... "scripts": {
...
"test:unit": "sfdx-lwc-jest",
"test:unit:watch": "sfdx-lwc-jest --watch",
"test:unit:debug": "sfdx-lwc-jest --debug",
"test:unit:coverage": "sfdx-lwc-jest --coverage",
...
},
...}ãããžã§ã¯ãã®ãã¹ãŠã®ãã¹ããå®è¡ããå Žåã¯ããããžã§ã¯ãã®ããŒã¹ãã£ã¬ã¯ããªãããã® npm ã³ãã³ããå®è¡ããŸãã
npm run test:unit
ç¹å®ã®ãã£ã¬ã¯ããªã®ãã¹ããå®è¡ããå Žåã¯ãç¹å®ã®ãã£ã¬ã¯ããªã§äžèšã®ã³ãã³ããå®è¡ãããšããã®ãã£ã¬ã¯ããªã®ãã¹ãã®ã¿ãå®è¡ãããŸãããã®å Žåã¯ããã¹ããã察象ãåãé¢ãããšãã§ããŸãã
éçºäžã®ç¶ç¶çãªãã¹ãã®å®è¡
ãã®ãªãã·ã§ã³ã§ã¯ãNode 㯠Git ãã³ãŒãããç£èŠãããããšãåæãšããŠããŸãããã®ãªãã·ã§ã³ã䜿çšããã«ã¯ããããžã§ã¯ãçšã«å¿
ã Git ãåæåããŠãã ããã倿Žãä¿åãããã³ã« 1 ã€ã®ã³ã³ããŒãã³ãã®ãã¹ãŠã®ãã¹ããå®è¡ããã«ã¯ããã£ã¬ã¯ããªãã³ã³ããŒãã³ããã£ã¬ã¯ããªã«å€æŽãã--watch ãã©ã¡ãŒã¿ãŒãæå®ãã sfdx-lwc-jest ã䜿çšããæ¬¡ã® npm ã³ãã³ããå®è¡ããŸããåè¿°ã®ãšããããããžã§ã¯ãã®ããŒã¹ãããã®ã³ãã³ããå®è¡ãã倿Žãè¡ããããã³ã«ãããžã§ã¯ãã®ãã¹ãŠã®ãã¹ããå®è¡ããããšãå¯èœã§ãã
npm run test:unit:watch
Jest ã¯ãã¹ãŠã®ã³ã³ããŒãã³ããã¡ã€ã«ã®æŽæ°ãç£èŠãã倿Žãæ€åºãããã³ã«é¢é£ãããã¹ãŠã®ãã¹ããå®è¡ããŸãã
Jest ãããã°ã¢ãŒãã§ã®ãã¹ãã®å®è¡
ãããã°ã¢ãŒãã§ã® Jest ãã¹ãã®å®è¡ã¯ããã¹ããšã¢ããªã±ãŒã·ã§ã³ã³ãŒããã¹ãããããšã«å®è¡ããŠããã¹ããŸãã¯ã³ãŒããæåŸ ã©ããã«åäœããªãçç±ã確èªããå Žåã«åœ¹ç«ã¡ãŸããæ¬¡ã®ããŒã«ã䜿çšããŠãJest ãã¹ãããããã°ã§ããŸãã
- Visual Studio Code Salesforce æ¡åŒµæ©èœããã¯
- Chrome ããããããŒããŒã«
- Visual Studio Code ãããã¬ãŒã®é«åºŠãªèšå®
Visual Studio Code Salesforce Extension Pack ã¯ãæãã·ã³ãã«ãã€ç°¡åãªãªãã·ã§ã³ãæäŸãããChrome DevTools ã¯çµéšè±å¯ãª Web éçºè ã察象ãšããŠããŸããããã«ãVS Code ãããã¬ãŒã®é«åºŠãªèšå®ã¯ãããŸããŸãªãããã¬ãŒããããã°ã·ããªãªã§äœ¿çšã§ããŸããé«åºŠãªèšå®ã§ã¯ãJest ãã¹ãããããã°ããããã®æãæè»ãªãªãã·ã§ã³ãæäŸãããŸãã
詳现ã«ã€ããŠã¯ããLightning Web ã³ã³ããŒãã³ãçšã® Jest ãã¹ãã®ãããã°ããåç §ããŠãã ããããŸãã¯ãJest ã®åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«ã€ããŠã¯ããJest: ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããåç §ããŠãã ããã
ãã¹ãã®å®è¡ãšã³ãŒãã«ããŒçã®è¡šç€º
ãã¹ãã®ã³ãŒãã«ããŒçã確èªããã«ã¯ã--coverage ãªãã·ã§ã³ã次ã®ããã«äœ¿çšããŸãã
npm run test:unit:coverage
Visual Studio Code ã®ã¯ãªãã¯æäœã«ãããã¹ãã®å®è¡
Salesforce Visual Studio Code ã®æ¡åŒµæ©èœã«ãã£ãŠ Jest ãã¹ãã®å®è¡ã«å¯Ÿããã³ã³ãããŒã«ãããžã¥ã¢ã«ãã£ãŒãããã¯ã匷åãããŸãããŸãã1 ã€ã®ãã¹ããè€æ°ã®ãã¹ãããããã¯ãã¹ãŠã®ãã¹ããå®è¡ããããšãéžæã§ããŸããããã«ãGit ã Visual Studio Code ã«äºåã€ã³ã¹ããŒã«ãããŠããããããã¡ã€ã«ã§ --watch ãªãã·ã§ã³ã䜿çšã§ããããã«ãªããŸãã
ããŒã«ãŒã¢ã€ã³ã³
ãã¯ãªãã¯ãããšããã¹ããµã€ãããŒãéããŸãããã®ã¢ã€ã³ã³ã衚瀺ãããªãå Žåãæ°ãã SFDX ãããžã§ã¯ããäœæããªããã°ãªããªãããšããããŸãããã¹ããµã€ãããŒã«ããããžã§ã¯ãã® Jest ãã¹ãã衚瀺ãã [LWC Tests (LWC ãã¹ã)] ã»ã¯ã·ã§ã³ããããŸãããã¹ããµã€ãããŒã«åèªã®ãããžã§ã¯ãã®ãã¹ããæ¬¡ã®ããã«è¡šç€ºãããŸãã
![test-lwc ãããžã§ã¯ãã®ãã¹ããµã€ãããŒã® [LWC Tests (LWC ãã¹ã)]ã](https://res.cloudinary.com/hy4kyit2a/f_auto/fl_lossy/q_70/learn/modules/test-lightning-web-components/set-up-jest-testing-framework/images/ja-JP/682ab047774b857320429dbee5a3ba4f_i.5.jpg)
åçãã¿ã³
ãã¯ãªãã¯ãããšããããžã§ã¯ãã® 1 ã€ã®ãã¹ããŸãã¯è€æ°ã®ãã¹ããå®è¡ãããŸãããã£ã¬ã¯ããªãŸãã¯åã
ã®ãã¹ãã«ããŠã¹ãã€ã³ã¿ãŒã眮ããšãåçãã¿ã³ã衚瀺ãããŸãããã¹ããå®è¡ããããšãã¿ãŒããã«ã«çµæã衚瀺ãããŸãããµã€ãããŒã«ãçµæãè²åãããŠç€ºãããŸããç·ã¯åæ Œãæå³ããŸããéã¯ãã¹ããå®è¡ãããŠããªãããšã瀺ãããªã¬ã³ãžã¯ãã¹ããã¹ããããããããšãèµ€ã¯ãã¹ãã«å€±æããããšã瀺ããŸãããµã€ãããŒã®ãã¹ããã¯ãªãã¯ãããšãã¡ã€ã«ãéãããã®ãã¹ãã«çŽæ¥ç§»åããŸãã
æŽæ°ã¢ã€ã³ã³
ãã¯ãªãã¯ãããšããã¹ãçµæãã¯ãªã¢ãããŸãã
ãã¹ããã¡ã€ã«ãã¥ãŒã«ãçŽæ¥ã³ã³ãããŒã«ããããŸãã

ã¿ãããŒã®åçãã¿ã³
ãã¯ãªãã¯ãããšããã¡ã€ã«ã®ãã¹ãŠã®ãã¹ããå®è¡ãããŸããç¹å®ã®ãã¹ããå®è¡ããå Žåã¯ããã¡ã€ã«ã®åãã¹ãã®äžã«ãã [Run Test (ãã¹ãã®å®è¡)] ãã¯ãªãã¯ããŸãã
倿Žãä¿åãããã³ã«ãã¡ã€ã«ã®ãã¹ãŠã®ãã¹ããå®è¡ããã«ã¯ãã¿ãããŒã®ãŠã©ããã¢ã€ã³ã³
ãã¯ãªãã¯ããŸãããã®ã¢ã€ã³ã³ã¯ãã¡ã€ã«ã®ãã¹ããäœæ¥äžã«äœ¿çšãããšäŸ¿å©ãªãªãã·ã§ã³ã§ãã
â ããããã®æ å ±ãç¿åŸããŸããã
次ã¯ãå®éã«ãã¹ããããã€ãèšè¿°ããŠã¿ãŸãããã
ãªãœãŒã¹
- éçºè ã¬ã€ã: Lightning Web ã³ã³ããŒãã³ãã®ãã¹ã
- Salesforce ããã°: Unit Test Lightning Web Components with Jest (Jest ã䜿çšãã Lightning Web ã³ã³ããŒãã³ãã®åäœãã¹ã)
- VS Code åã Salesforce æ¡åŒµæ©èœ: Lightning Web ã³ã³ããŒãã³ãã®ãã¹ã
- å€éšãµã€ã: Node.js: Downloads (ããŠã³ããŒã)
- å€éšãµã€ã: npm: @salesforce/sfdx-lwc-jest
- å€éšãµã€ã: npm: Using a package.json (package.json ã®äœ¿çš)
- å€éšãµã€ã: npm: package.json
- å€éšãµã€ã: Jest: Getting Started (䜿çšéå§)
- å€éšãµã€ã: Jest: Configuration (èšå®)
- å€éšãµã€ã: Jest: Troubleshooting (ãã©ãã«ã·ã¥ãŒãã£ã³ã°)
- å€éšãµã€ã: Wikipedia: Test-Driven Development (Wikipedia: ãã¹ãäž»å°åéçº)