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

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

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

ginkouno

May 15, 2020
Tweet

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 ͸ςετΛॻ͖΍͍͢ • ϦϦʔεස౓͕૿͑Δ