Share
Embed
Transcript
46 slides
-
νʔϜͰऔΓΉςετվળͷ ͋ΏΈ 2021.09.08 Wed. Midas Tech Study #2 @negiandlee k
SmartHR ϓϩμΫτΤϯδχΞ -
ࠜ؛ ༐ SmartHR ϓϩμΫτΤϯδχΞ ʗSmartHR ຊମʗओʹWebϑϩϯτΤϯυʢReact + TypeScriptʣ • 20209݄SmartHRೖࣾ
• SmartHRຊମͰݱࡏओʹ༧ػೳͷ։ൃΛߦͳ͍ͬͯΔ • ւ͕͖ͳͷͰւ͕͍ۙͱ͜ΖʹҾͬӽͨ͠ @negiandleek -
- νʔϜߏ - ΤϯδχΞ5ਓ - ϑϩϯτΤϯυ1ਓ - όοΫΤϯυ4ਓ - QA1ਓ
- ։ൃLeSS(εΫϥϜͷେ͖͍൛)ͷϑϩʔʹԊͬͯΔ - εϓϦϯτظؒ1िؒ ։ൃମ 🏢 -
Ұिؒͷ͍͍ͩͨͷྲྀΕ 📅 ਫ ۚ ݄ Ր ޕલ Ռͷ ϨϏϡʔ
࣮ ࣮2" 2" ޕޙ ܭը 2" -
- SmartHRຊମʹϑϩϯτΤϯυͷνʔϜ͕ൃ͞Εͨͷ͕Ұલ - όοΫΤϯυଆʹϏδωεϩδοΫ͕ଟ͍ - E2E(RSpec ͱCapybaraͰߏ͞Ε͍ͯΔςετ)ॻ͔Ε͍ͯΔ - όοΫΤϯυଆͷࣗಈςετ(Controller, Model,
Request)݁ ߏॻ͔ΕͯΔ ݱঢ়ͷςετ *ϓϥεΞϓϦͰϑϩϯτΤϯυͷνʔϜͬͱૣ͔͘Β݁͞Ε͍ͯ·͢ -
- QAͷϦιʔε - ։ൃऀ:QA=5: 1 - ݄ͱՐʹQAλεΫ͕ଟ͘ൃੜ͢Δ - ςετઓུ͕ͳ͔ͬͨ -
ࣗಈςετͱϚχϡΞϧςετͰॏෳͯ͠ΔՕॴ͕͋Δ - ࣗಈςετ͕Γͯͳ͍͜ͱଟʑ ՝ͷৄࡉ *νʔϜᴈ໌ظͩͬͨͷͰ՝΄͔ʹΖΖ͋ͬͨ… -
- QAͷϦιʔε - QA͕ࣗಈςετͰԿΛ୲อ͍ͯ͠Δͷ͔Βͣʹ͍Δͨ Ίɺςετ࣮ࢪͷ࣌ؒͷख͕ؒ૿͍͑ͯΔ - ͦͷͨΊɺQAͷλεΫ1िؒͷ͏ͪɺޙʹ͞ΒʹภΔ - ςετઓུ͕ͳ͔ͬͨ ՝ͷੳ
QAͱΤϯδχΞͰ ςετ؍ʹ͍ͭͯڞ༗ͨ͠ΒղܾͰ͖ͦ͏🤔 -
ཧͷςετϐϥϛουʹ͚ۙͮΔ - E2EͷίετΛԼ͛ΔͨΊʹɺJest Integration Test Λಋೖͨ͠ - ϖʔδΛؙ͝ͱϨϯμϦϯά͢Δςετ - E2EͱॏͳΔ෦͋ΔͷͰɺϧʔϧΛ໌֬ʹ
͠ɺ͍͍͢ڥʹͨ͠ Ҿ༻:alisterbscott.com Ҿ༻:testingjavascript.com -
Jest Integration Testͷڥඋ - JestͱReact Testing Librar y - MSW(Mock
Service Worker)ͷಋೖ - Browser/Node྆ํͰ͑Δ - APIͷ࣮ͪͳ͘ͳΔͳͲͷϝϦοτ͋Δ - એݴతʹఆٛͰ͖ΔͷͰ͍͍͢ -
Jest Integration TestͱE2EͱϚχϡΞϧςετͷͲΕͰ୲ อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND )
- Jest Integration Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - First Fetch(ϖʔδͷॳճදࣔ)Ͱ݁͢ΔͷJest
Integration Tes t - ύλʔϯ͕ෳ͋Δ߹ɺϋοϐʔύεΛE2EͰߦ͍ɺΓͷόϦΤʔγϣϯJest Ͱ୲อ͢Δ - Ϣʔβʔૢ࡞͕͏͕ɺRequest͕ൃੜ͠ͳ͍ͷJest Integration Tes t - όϦσʔγϣϯϘλϯͷDisabledଐੑ - Jest Integration Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL) - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - First Fetch(ϖʔδͷॳճදࣔ)Ͱ݁͢ΔͷJest
Integration Tes t - ύλʔϯ͕ෳ͋Δ߹ɺϋοϐʔύεΛE2EͰߦ͍ɺΓͷόϦΤʔγϣϯJest Ͱ୲อ͢Δ - Ϣʔβʔૢ࡞͕͏͕ɺRequest͕ൃੜ͠ͳ͍ͷJest Integration Tes t - όϦσʔγϣϯϘλϯͷDisabledଐੑ - Jest Integration Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - First Fetch(ϖʔδͷॳճදࣔ)Ͱ݁͢ΔͷJest
Integration Tes t - ύλʔϯ͕ෳ͋Δ߹ɺϋοϐʔύεΛE2EͰߦ͍ɺΓͷόϦΤʔγϣϯJest Ͱ୲อ͢Δ - Ϣʔβʔૢ࡞͕͏͕ɺRequest͕ൃੜ͠ͳ͍ͷJest Integration Tes t - όϦσʔγϣϯϘλϯͷDisabledଐੑ - Jest Integration Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - Jest Integration
Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - 400ܥ - E2EͰग़དྷͳ͍ͷ(ΠϨΪϡϥʔ͕ଟ͍ͷͰյΕͳ͍͜ͱͷ֬ೝ ) - APIΛୟ͍ͨ࣌ͷRequest BodyͳͲͷΞαʔγϣϯ - ϦϑΝΫλϦϯά͢ΔͷͰ͋Ε͋ͬͨํ͕҆৺ - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - Jest Integration
Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - 400ܥ - E2EͰग़དྷͳ͍ͷ(ΠϨΪϡϥʔ͕ଟ͍ͷͰյΕͳ͍͜ͱͷ֬ೝ ) - APIΛୟ͍ͨ࣌ͷRequest BodyͳͲͷΞαʔγϣϯ - ϦϑΝΫλϦϯά͢ΔͷͰ͋Ε͋ͬͨํ͕҆৺ - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - Jest Integration
Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - 400ܥ - E2EͰग़དྷͳ͍ͷ(ΠϨΪϡϥʔ͕ଟ͍ͷͰյΕͳ͍͜ͱͷ֬ೝ ) - APIΛୟ͍ͨ࣌ͷRequest BodyͳͲͷΞαʔγϣϯ - ϦϑΝΫλϦϯά͢ΔͷͰ͋Ε͋ͬͨํ͕҆৺ - E2 E - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - Jest Integration
Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - E2 E - ਖ਼ৗܥ - Mutationܥ(Post, Patch, Delete ) - ੍ޚܥ(ݖݶೝূͳͲ ) - ϚχϡΞϧςετ -
+FTU*OUFHSBUJPO5FTUͱ&&ͱϚχϡΞϧςετͷͲΕͰ୲อ͢Δ͔ϧʔϧΛ໌֬ʹ͢Δ - Jest Integration Test Ͱͬͨํ͕͍͍ςετ(RECOMMEND ) - Jest Integration
Test Ͱ͋Δͱخ͍͠ςετ(OPTIONAL ) - E2 E - ϚχϡΞϧςετ - Ұ෦ਖ਼ৗܥͱɺσβΠϯपΓ - ΠϨΪϡϥʔܥ(ෳλϒ)όοΫάϥϯυॲཧͷ݁ՌͳͲ -
·ͱΊ🎉 - ҆ఆ࣮ͯ͠ʙQA·ͰऴΘΔΑ͏ʹͳͬͨ - ࣗಈςετͷ৴པੑ͕ߴ·Γ҆৺ͯ͠ϑϩϯτΤϯυͷ։ൃͰ͖Δ - ࣮ʙϦϦʔε·Ͱૣ͘ͳͬͨ - QAͷྗେ͖͍ͷͰڠಇ͍ͯ͘͜͠ͱ͕େ -
ࣗಈςετͷ৴པੑߴ·ΓɺϚχϡΞϧςετ࠷খݶͰߦ͑Δ