Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Webアプリのテスト(Atrae社内勉強会)

 Webアプリのテスト(Atrae社内勉強会)

Yusuke AONO

June 01, 2015
Tweet

More Decks by Yusuke AONO

Other Decks in Technology

Transcript

  1. TDDͷਐΊํ 1. ໨ඪʢ࡞Γ͍ͨػೳͷ࢓༷ɺظ଴͢Δ݁ՌʣΛߟ͑Δ 2. ͦͷ໨ඪΛࣔ͢ςετΛॻ͘ 3. ςετΛ࣮ߦࣦ͠ഊͤ͞Δ (RED) 4. ໨తͷίʔυΛॻ͘

    5. 2Ͱॻ͍ͨςετΛ੒ޭͤ͞Δ (GREEN) 6. ςετΛ੒ޭঢ়ଶʹͨ͠··ϦϑΝΫλϦϯά͢Δ 7. 1 ~ 6Λ܁Γฦ͢
  2. ৼΔ෣͍ʢBehavierʣ • ίʔυϨϕϧͷৼΔ෣͍ • Model΍Controllerͷϝιου1ͭʢ͋Δ͍͸ͦͷ૊Έ߹Θͤʣ • ୯ମςετ (unit test) Ͱςετ

    • ϢʔβʔϨϕϧͷৼΔ෣͍ • ϑΥʔϜʹೖྗͯ͠submitͯ͠…ͱ͍ͬͨϢʔβʔཁٻ΍ɺ֎෦ APIͷڍಈ • ݁߹ςετ (integration test) Ͱςετ
  3. جຊతͳه๏ • ʮ࢛ଇԋࢉʯͷʮ1 + 1 ͸ 2 ʹͳΔʯͱ͍͏ৼΔ෣͍Λςετ • describe

    ͰςετΛάϧʔϓԽ • it ͰςετΛexampleͱ͍͏୯Ґʹ·ͱΊɺͦͷதʹ࣮ࡍͷςετ಺ ༰Λॻ͍͍ͯ͘
  4. ΤΫεϖΫςʔγϣϯ • ظ଴஋ͱ࣮ࡍͷ஋ͷൺֱΛߦ͏ • expect(X).to eq Y • = ʮX͕Yʹ౳͘͠ͳΔ͜ͱΛظ଴͢Δʯ

    • ‘eq’ ͷ෦෼ΛϚονϟͱ͍͏ (eq Ҏ֎ʹ΋৭ʑ͋Δɺ be_validͱ͔includeͱ͔ʣ • it ͷதͷΤΫεϖΫςʔγϣϯ͕શͯύε͢Ε͹ɺͦͷ exampleશମΛύεͨ͜͠ͱʹͳΔ
  5. ςετͷ࡞͍͖͔ͬͯͨ • 2ύλʔϯ͋Δ • ΠϯαΠυΞ΢τʢ୯ମ => ౷߹ʣ • Ϟσϧͷ1ϝιουͷςετͷΑ͏ͳখ͞ͳίϯϙʔωϯτΛ࡞Γɺ ͦΕΛੵΈ্͛ͳ͕Βઃܭ͍ͯ͘͠

    • શମײ͔ͭΈʹ͍͘ • Ξ΢ταΠυΠϯʢ౷߹ => ୯ମʣ • Ϣʔβʔ͕໨ʹ͢Δʮ֎ଆʯͷৼΔ෣͍ΛςετͰهड़ɺͦͷ͋ͱݸʑ ͷίϯϙʔωϯτΛ࣮૷ • ։ൃ͠ͳ͕Βཁٻ͕ͲΜͲΜมΘͬͯ͘؀ڥͩͱ΍Γʹ͍͔͘΋…
  6. TalentBaseͷྫ • CircleCIΛར༻ • git push ͢Δ౓ʹCI͕࣮ߦ͞ΕΔ • ςετεΩοϓ͔ͨͬͨ͠Βɺίϛοτϝοηʔδʹ [ci

    skip] ͱॻ͘ • ಛఆͷϒϥϯνʹpushͯ͠ςετ͕௨ΔͱɺࣗಈͰ σϓϩΠ࣮ߦ (staging) ·Ͱ΍ͬͯ͘ΕΔ
  7. ͱʹ͔͘αϯϓϧ • ਅࣅͯ͠΋Β͏౔୆࡞Γ • ࠷ॳ͸αϯϓϧͷίϐϖͰ΋ྑ͍ • ςετͷ͋Δੜ׆Λମݧ͢Δͷ͕େࣄ • ׳Ε͖ͯͨΒςετͷϝϯςφϯε •

    ͋ͱ͸͜ΕΛಡΊ • ςετΛॻ͘จԽΛҭͯΔઓུͱઓज़ http:// www.slideshare.net/t_wada/devlove-testing-culture