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

テストがないRailsプロジェクトにテストを足す話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 テストがないRailsプロジェクトにテストを足す話

Avatar for ginkouno

ginkouno

May 15, 2020

More Decks by ginkouno

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ Տ໺ ੣(@ginkouno) • ϑϦʔϥϯε(2013ʙ)ɺΫηϥΩגࣜձࣾ୅ද • Ruby on RailsɺswiftɺGoɺReactɺઙ͘Πϯϑϥ΋ ܦྺ

    • 1996ʙ C++ͰΞϧόΠτ(Windows3.1) • 1998 ߴઐଔۀ(ػց޻ֶՊ) • 1998ʙ ৽ଔͰೖͬͨϝʔΧʔͰΞηϯϒϦݴޠͰ૊ΈࠐΈ։ൃͱ͔ • 2000ʙ ৭ʑͳॴͰ C++ɺ૊ΈࠐΈ / Windows / Linux • 2008ʙ ٸʹ Web ܥ΁ɻRuby on Rails1.2 ܥ͔Β 6.0.2.2 ·Ͱ
  2. ಋೖ ςετ͕ແ͍ϓϩδΣΫτʹɺ(݁Ռతʹ)ςετΛ଍͢Ҋ݅Λड͚ͨͱ͖ • Ruby ΍ Rails ͷ Version UP Λ͍ͨ͠

    • ςετ͕ཁΔΑͶ • ςετ͕ແ͍ͷͰɺ଍ͯ͠ཉ͍͠ • OK ؤுΔɻཧղ͕͋ͬͯॿ͔Δ
  3. ྫ:Rails ͷ Version up ςετΛॻ࣌ؒ͘ΛऔΔ͔औΒͳ͍͔ɺҎԼͷίετͱରൺͯ͠΋Β͏ • όοναʔό • staging ؀ڥ͕ಈ͍ͯΔͳΒɺVersionUP

    ݄ͯ̍͠์ஔ • Web UI ଆ • ςετ࢓༷ॻΛ SpreadSheet Ͱॻ͍ͯɺઐଐςετཁһΛ֬อ • VersionUP ຖʹશ෦ςετ
  4. Լ४උ 1 ࣗಈςετͷ४උ • CircleCI Ͱ΋ Travis Ͱ΋ Jenkins Ͱ΋ྑ͍

    • ޙड़ͷ simle_cov ͷ݁Ռද͕ࣔͰ͖Δ΋ͷ͕ྑ͍
  5. ςετͷ௥Ճͷ։࢝ Ͳ͔͜Β଍͢ͷ͔ • ςετ͕ແ͍ϓϩδΣΫτɺʮϏδωεϩδοΫ͕ model ʹ෼཭ʯͱ͔͞Εͯͳ͍ • model ʹରͯ͠ͷ Unit

    test ͱ͔͕ॻ͖ʹ͍͘ • ݱঢ়ͷ࢓༷Λςετʹམͱ͠ࠐΉ͜ͱ͔Β • api ͩͬͨΒ request spec • UI ͕͋ΔϓϩδΣΫτͩͬͨΒ feature spec
  6. ςετ௥Ճʹ͔͔Δ࣌ؒ • ϓϩδΣΫτͷن໛ͱ࢓༷ͷෳࡶ͞ʹґଘ͢ΔͷͰɺͳΜͱ΋ݴ͑ͳ͍ • simple_cov ͷ method ਺΍ line ਺Λɺ1ʙ2

    िؒͰ௥ՃͰ͖ͨςετͷ਺Ͱׂͬͯਪଌ • ࠷ॳͷࠒͷํ͕ factory bot ͷ੔උͳͲͰ͕͔͔࣌ؒΔͷͰɺޙ൒͸Ճ଎͢Δ͸ͣ
  7. ςετ͕͋Δఔ౓௥ՃͰ͖ͨޙͷੈք • Rails ౳ͷ VersionUP ͕ḿΔ • ϦϑΝΫλϦϯά͕͠΍͘͢ͳΔ • model

    ΁ͷ੾Γ෼͚ͱ͔ɺunit ςετ͕ॻ͖΍͍͢ model ͷॻ͖ํ΁ͷֶͼ͕ੜ·ΕΔ • ߴڽूͰ௿݁߹ͳ Class ͸ςετΛॻ͖΍͍͢ • ϦϦʔεස౓͕૿͑Δ