Wiremockで行うUIテスト

 Wiremockで行うUIテスト

Wiremockを使うとオフラインでUIテストしやすいよって話をしました。

Db5cf21a75ebe2484b95ea9dec5f573b?s=128

Shingo Tamaki

May 28, 2018
Tweet

Transcript

  1. 8JSFNPDLͰߦ͏ 6*ςετ 0SJHBNJۄ৓

  2. ࣗݾ঺հ w 0SJHBNJͷJ04ΤϯδχΞ͍ͯ͠·͢ɻ w ࠷ۙ,PUMJOͱ"OESPJE΋গ͚ͩ͠

  3. 6*ςετ w ը໘ͷίϯϙʔωϯτͷදࣔ֬ೝ w ը໘ભҠͷ֬ೝ w Ξχϝʔγϣϯͷ֬ೝ

  4. ΞϓϦʹ௨৴͸͖ͭ΋ͷ w ΞϓϦىಈ࣌ w ֤ը໘ભҠ࣌ w ಛఆػೳͷ࣮ߦ࣌ w "1*ؒͰґଘ͕͋Δ "ˠ#ˠ$ͰݺͿલఏ

  5. ௨৴͠ͳ͕Βͷ 6*ςετΛͨ͘͠ͳ͍ཧ༝ ྫ w ςετΛ࣮ߦ͢Δͱσʔλ͕૿͑ΔΑ͏ͳέʔε͕͋Γ$* Ͱճ͢͝ͱʹ%#্ʹϞϦϞϦσʔλग़དྷΔ w ςετΛ࣮ߦ͢Δͱঢ়ଶ͕มԽ͢Δσʔλ͕͋Γɺঢ়ଶΛ Ϧηοτ͢Δͷʹख͕͔͔ؒΔ৔߹ w

    %#ͷΫϦʔϯΞοϓॲཧ͢Δͱ͍͏ख΋͋Δ͕ͦ͜·Ͱ ͷखؒΛ͔͚ͯ΍Γ͍ͨࣄͰ͸ͳ͍
  6. ϞοΫ͠ΐ͏

  7. ࣗ෼ͰϞοΫαʔό։ൃ 7BQPSͰ+40/Ұͭฦ͢"1*ॻ͍ͯ ʮ͋ɺࢲ͕ཉ͍͠ίϨઈର୭͔࡞ͬͯΔΘʯ ͬͯզʹฦΓ·ͨ͠

  8. ϞοΫαʔόͷπʔϧΛ୳͢ w ಋೖ͕͠΍͍͢ํ͕͍͍ w ؀ڥʹӨڹ͞Εʹ͍͘ํ͕͍͍ w ੩తͳ৘ใΛฦ͚ͩ͢Ͱ͸ͳ͘ɺಈతʹϨεϙϯεΛมԽ ͤͨ͞Γ͍ͨ͠

  9. ྫ͑͹4XBHHFS w ϞοΫαʔό͸؆୯ʹཱͯΒΕΔ͕ɺ৽نͰ͜Ε͔Β࢝Ί Δͱ͍͏༻్ʹ޲͍ͯͦ͏ɻ w 4XBHHFSΛ࢖ͬͯͳ͍طଘͷ"1*ͷϞοΫΛ͍ͨ͠৔߹ɺ :".-ͳͲͰͷఆٛ͢Δͱ͜Ζ͔ΒελʔτʹͳΓͦ͏

  10. 8JSFNPDL

  11. 8JSFNPDLͱ͸ w )551ϕʔεͷ"1*ͷγϛϡϨʔλɺϞοΫαʔόʔͱ͠ ͯศརͳػೳΛἧ͑ͨπʔϧ w ಋೖ͸KBSϑΝΠϧҰݸμ΢ϯϩʔυͯ͠࢖͑·͢ w IUUQXJSFNPDLPSH w 5FDIOPMPHZSBEBSʹ΋ग़ͨΑ͏Ͱ͢

    ࠓ೥͕ॳΊͯ  w IUUQTXXXUIPVHIUXPSLTDPNSBEBSUPPMT
  12. 8JSFNPDLͷػೳ w 4UVCCJOH w 3FRVFTU.BUDIJOH w 1SPYZJOH w 3FDPSE1MBZCBDL w

    4UBUFGVM#FIBWJPVS w FUD
  13. 4UVCCJOH 8JSFNPDLͰ͸ελϒ͢Δ಺༰ ʹ͍ͭͯ+40/Ͱఆٛͯ͠ߦ͖· ͢ɻ ӈͷਤ͸γϯϓϧͳελϒͷྫ Ͱ͢ɻ(&5MPDBMIPTU TPNFUIJOHͰϦΫΤετ͢Δͱ 8JSFNPDL͸)551εςʔλείʔ υΛͰɺz)FMMPXPSMEzͷς ΩετσʔλΛฦ͠·͢ɻ

  14. 3FRVFTU.BUDIJOH w 63- w )551.FUIPE w 2VFSZQBSBNFUFST w )FBEFST w

    #BTJDBVUIFOUJDBUJPO w $PPLJFT w 3FRVFTUCPEZ w .VMUJQBSUGPSNEBUB ӈͷϦετʹ͋Δ߲໨͕ε λϒΛฦ͢৚݅ͱͯ͠࢖༻ Ͱ͖·͢ɻ·ͨͦͷ஋ʹ͸ ਖ਼نදݱʹΑΔύλʔϯΛ ࢖༻͢Δ͜ͱ΋Ͱ͖·͢ɻ͜ ΕʹΑΓॊೈͳ৚݅ઃఆ͕ ՄೳʹͳΓ·͢ɻ
  15. 1SPYZJOH Ұ෦ͷ"1*ʹ͍ͭͯϞοΫ͍ͨ͠ ͷͰ͋Ε͹1SPYZͷػೳ͕࢖͑ ·͢ɻ ӈਤͷΑ͏ʹϦΫΤετͷ৚݅  PUIFSTFSWJDF ʹϚονͨ͠ ৔߹͸QSPYZ#BTF6SMͰࢦఆͨ͠ 63-΁ྲྀ͠·͢ɻ

  16. 3FDPSE1MBZCBDL 3FDPSE1MBZCBDLͷػೳΛ࢖ͬ ͯطଘͷ"1*ͱͷ௨৴Λه࿥͠ɺ ͦΕΛݩʹͨ͠ఆٛϑΝΠϧΛ ੜ੒͢Δ͜ͱ͕Ͱ͖·͢ɻ ͢Ͱʹ"1*͕͋Δ৔߹͸͜ͷํ๏ Ͱطଘͷ௨৴ΛݩʹఆٛϑΝΠ ϧΛੜ੒ɾฤू͍ͯ͘͠ͱ͍͏ Α͏ͳࣄ͕Ͱ͖·͢ɻ

  17. NBQQJOHTEJSFDUPSZ 8JSFNPDL͸ΧϨϯτσΟϨΫτϦ ͷ@@pMFTͱNBQQJOHTΛಡΉࣄ͕ σϑΥϧτͷઃఆͱͳ͍ͬͯ·͢ɻ ͜ͷೋͭͷσΟϨΫτϦ͸ىಈ࣌ʹ ࣗಈͰ࡞੒͞Ε·͢ɻ ઌ΄Ͳͷ3FDPSEػೳͳͲͰه࿥͠ ͨఆٛ͸ه࿥׬ྃ࣌ʹNBQQJOHTʹ KTPOͰอଘ͞Ε·͢͠ɺNBQQJOHT ʹ͜ͷఆٛϑΝΠϧ͕͋Δ৔߹ɺ

    8JSFNPDL͸ࣗಈͰ͜ͷϑΝΠϧΛ ಡΈࠐΈ·͢ͷͰϚοϐϯά͸ࣗ ಈͰ׬ྃ͠·͢ɻ ௒ศརʂ  ᵓᴷᴷ@@pMFT ᵓᴷᴷNBQQJOHT ᴹᵋᴷᴷSFDPSEFE@ZPVS@BQJKTPO ᵋᴷᴷXJSFNPDLKBS
  18. 4UBUFGVM#FIBWJPVS  4UBUFGVM#FIBWJPSͷػೳΛ࢖͏ ͱఆٛͨ͠ঢ়ଶΛݩʹ͜Ε·Ͱ ʹઆ໌ͨ͠ϦΫΤετɾϨεϙ ϯεͷఆٛΛม͑Δࣄ͕Ͱ͖· ͢ɻ 50%0Ϧετͷ"1*ʹରͯ͠(&5 1045(&5࣮ߦ͠ɺճ໨ͷ (&5Ͱͦͷલͷ1045Ͱঢ়ଶ͕

    มԽ͠Ϩεϙϯε͕มԽ͢ΔΑ ͏ͳྫΛ࠶ݱͯ͠Έ·͠ΐ͏
  19. 4UBUFGVM#FIBWJPVS  ӈਤ͸ॳظঢ়ଶͷ(&5ͱ1045 ʹର͢ΔϨεϙϯεΛఆٛͯ͠ ͍·͢ɻ zSFRVJSFE4DFOBSJP4UBUFz ͕z4UBSUFEz͔Β։࢝͞Εɺ1045 ࣌ʹzOFX4DFOBSJP4UBUFzͰఆٛ ͨ͠ঢ়ଶ΁ͱભҠ͠·͢ɻ

  20. 4UBUFGVM#FIBWJPVS  ͦͯ͠ӈਤ͕࠶ͼ(&5Λୟ͍ͨ ࣌ͷఆٛͰ͢ zSFRVJSFE4DFOBSJP4UBUFz͕࠷ ॳͷఆٛͱมΘ͍ͬͯ·͢ɻ͜ ͷΑ͏ʹݱࡏͷঢ়ଶΛ৚݅ͱ͠ ͯ3FRVFTU.BUDIJOH͕ಉ͡Ͱ ΋ϨεϙϯεΛม͑Δࣄ͕Ͱ͖ ΔΑ͏ʹͳΓ·͢ɻ

  21. 8JSFNPDL$MJFOU w 4XJGU੡ͷΫϥΠΞϯτϥΠϒϥϦ w 8JSFNPDLͷػೳશ͕ͯ࢖͑ΔΘ͚Ͱ͸ͳ͍ w 4UVCCJOH w .BUDIJOH3FRVFTU w

    %FpOF3FTQPOTF w 1SPYZJOH w 4UBUFGVM#FIBWJPS w 1PTUJOH6QEBUJOH%FMFUJOH4BWJOH.BQQJOHT w IUUQTHJUIVCDPNNPCJMFGPSNJOH8JSFNPDL$MJFOU
  22. 8JSFNPDL$MJFOU 1PTU.BQQJOH

  23. 8JSFNPDL$MJFOU 3FRVFTU.BUDIJOH

  24. 8JSFNPDLͷ؅ཧը໘ IUUQMPDBMIPTU@@BENJOTXBHHFSVJ

  25. 9$6*5FTU࣮ߦ࣌ʹ ϗετ໊Λ੾Γସ͑Δ "11 SPQQPOHJDPN MPDBMIPTU

  26. ࢖ͬͯΈͯͷײ૝ w ౰ॳ΍Γ͔ͨͬͨࣄ͸8JSFNPDLΛ࢖࣮ͬͯݱͰ͖ͨ w ελϒͯ͠ฦ͢σʔλ͸ςετίʔυ্Ͱॻ͘ΑΓKTPOϑΝ Πϧʹͯ͠ಡΈࠐ·ͤΔํָ͕ͩͬͨɻ΋ͬͱ͍͑͹Ұ౓ ࡞ͬͨσʔλΛNBQQJOHTʹೖΕͱ͚͹8JSFNPDL$MJFOU ΛςετίʔυͰ࢖Θͳͯ͘΋ྑ͘ͳͬͨ w 8JSFNPDLʹ͸ඇৗʹଟ͘ͷػೳ͕͋ΔͷͰੋඇ৭ʑࢼ͠

    ͯΈͯཉ͍͠Ͱ͢ɻ
  27. ࢀߟ63- w IUUQXJSFNPDLPSH w IUUQTHJUIVCDPNNPCJMFGPSNJOH8JSFNPDL$MJFOU w IUUQTLB[VDPDPBXPSEQSFTTDPN NPDL&#&#$&&"' &#$&"XJSFNPDL&"& "

    w IUUQTFOHJOFFSJOHMJOFDPSQDPNKBCMPHEFUBJM w IUUQTRJJUBDPNUBNBLJJUFNTGDFGB
  28. Ҏ্