Automated testing in Ruby 101
by
Masafumi Okura
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
RubyͰ͡ΊΔࣗಈςετ ࣛࣇౡRubyձٞ02 େխ࢙ʢOKURA Masafumiʣ 2022-03-04, mark MEIZAN
Slide 2
Slide 2 text
ࣗಈςετ
Slide 3
Slide 3 text
ॻ͍͍ͯΔਓ—
Slide 4
Slide 4 text
ࠓͷඪ
Slide 5
Slide 5 text
ࣗಈςετ ʹ͍ͭͯͷ ֓ཁͷཧղ
Slide 6
Slide 6 text
ࠓͷ͓ 1. ࣗಈςετʹ͍ͭͯ 2. Rubyʹ͓͚Δࣗಈςετ 3. ྑ͍ࣗಈςετͱ 4. ࣮ԋʂςετϑΝʔετ
Slide 7
Slide 7 text
ͦͷલʹ
Slide 8
Slide 8 text
ࣗݾհ
Slide 9
Slide 9 text
Okura.introduce(self) • ໊લɿେխ࢙ • ॴଐɿϑϦʔϥϯε • ՝֎׆ಈɿKaigi on RailsɺGrow.rbɺRubygems Code Reading෦ɺ֤छొஃɺOSS׆ಈɺRails GirlsίʔνɺϑΟ ϤϧυϒʔτΩϟϯϓͷΞυόΠβʔ • ॳࣛࣇౡ
Slide 10
Slide 10 text
1. ࣗಈςετ ʹ͍ͭͯ
Slide 11
Slide 11 text
ࣗಈςετͱ
Slide 12
Slide 12 text
ϓϩάϥϜͱͯ͠ ࣮͞Εͨςετ
Slide 13
Slide 13 text
ϓϩάϥϜͳͷͰ ࣗಈԽ͕؆୯
Slide 14
Slide 14 text
ςετͳͷͰ ͋ΔछͷݕূΛ ߦ͏
Slide 15
Slide 15 text
ࣗಈςετʹ͍ͭͯ 1. ࣗಈςετͷԸܙ 2. ࣗಈςετͷछྨ 3. ࣗಈςετͷҙ
Slide 16
Slide 16 text
1.1 ࣗಈςετͷ Ըܙ
Slide 17
Slide 17 text
ࣗಈςετԿ͕خ͍͠ͷ͔ʁ • ίʔυʹର͢ΔυΩϡϝϯτʹͳΔ • ίʔυͷWhatΛઆ໌͢Δ • όάͷ࠶ൃʢϦάϨογϣϯʣΛ͙ • ϦϑΝΫλϦϯάͷॿ͚ʹͳΔʢ΄΅ඞਢʣ • ʢςετΛઌʹॻ͘߹ʣίʔυͷ্࣭͕͕Δ • ʮςετϑΝʔετʯ
Slide 18
Slide 18 text
1.2 ࣗಈςετͷ छྨ
Slide 19
Slide 19 text
ࣗಈςετͷछྨ • ୯ମςετʢϢχοτςετʣ • ଞͷίϯϙʔωϯτ͔ΒΓͯ͠ςετ • ݁߹ςετ • ͍͔ͭ͘ͷίϯϙʔωϯτΛΈ߹Θͤͯςετ
Slide 20
Slide 20 text
1.3 ࣗಈςετͷ ҙ
Slide 21
Slide 21 text
ࣗಈςετͰҙ͖͢͜ͱ • ʮόά͕ͳ͍ʯ͜ͱͷূ໌ʹͳΒͳ͍ • ʮςετ͕௨ͬͨʂˠόάͬͯͨorzʯΈ͍ͨͳ͜ͱ Α͋͘Δ • ίʔυΛॻ͍͔ͯΒςετΛॻ͘ͱେมʹͳΓ͕ͪ • ςετϑΝʔετͷํָ͕ʢݸਓͷҙݟͰ͢ʣ
Slide 22
Slide 22 text
͜ͷ࣌Ͱ ͑ͯ ͓͖͍ͨ͜ͱ
Slide 23
Slide 23 text
ࣗಈςετ ॻ͘ͷ
Slide 24
Slide 24 text
ࣗಈςετجຊతʹॻ͘ • ʮςετϑΝʔετʯ͔ʮςετϥετʯ͔ͲͪΒͰ Α͍ • MiniTest͔RSpec͔ͲͪΒͰΑ͍ • ࡉ͔͍͜ͱׂͱؾʹ͠ͳ͍ͰΑ͍ • ͱʹ͔͘ॻ͘
Slide 25
Slide 25 text
ॻ͔ͳ͍ޙչ ΑΓ ॻ͘ޙչ
Slide 26
Slide 26 text
2. Rubyʹ͓͚Δ ࣗಈςετ
Slide 27
Slide 27 text
Rubyͷੈքʹ ͨ͘͞Μͷςετ gem͕͋Γ·͢
Slide 28
Slide 28 text
ςετgemͷখྨ 1. ςετϑϨʔϜϫʔΫ 2. ಛఆ༻్͚DSL 3. αϙʔτϥΠϒϥϦ
Slide 29
Slide 29 text
2.1 ςετ ϑϨʔϜϫʔΫ
Slide 30
Slide 30 text
RubyͷςετϑϨʔϜϫʔΫ • RSpec • μϯϩʔυ͕࠷ଟɺ൚༻ςετDSLͰ͋Δ • MiniTest • xUnitܥ౷ɺεϐʔυͱγϯϓϧ͕͞Ϧ • Test::Unit • ࠷ݹͷςετϑϨʔϜϫʔΫɺxUnitܥ౷
Slide 31
Slide 31 text
2.2 ಛఆ༻్͚ DSL
Slide 32
Slide 32 text
ಛఆ༻్͚DSL • Capybara • ϒϥβૢ࡞ͷͨΊͷDSL • Cucumber • ड͚ೖΕςετͷͨΊͷDSLɺຊޠ͕ॻ͚Δ
Slide 33
Slide 33 text
2.3 αϙʔτ ϥΠϒϥϦ
Slide 34
Slide 34 text
αϙʔτϥΠϒϥϦ • FactoryBot • ςετσʔλʢߏԽ͞Εͨσʔλʣͷੜ • Faker • ϥϯμϜσʔλʢϝʔϧΞυϨε໊લͳͲʣ • Timecop • ࣌ؒΛૢ࡞͢Δ
Slide 35
Slide 35 text
3. ྑ͍ࣗಈςετ ͱ
Slide 36
Slide 36 text
ྑ͍ࣗಈςετͷϙΠϯτ • ࣗಈςετίʔυͳͷͰɺྑ͍ίʔυͷݪଇΛద༻͢Δ • Մಡੑʢ໋໊ɺཻͷখ͞͞ͳͲʣ • దͳߏԽ • ࣮ߦ࣌ؒͷ͞ • ແବͳσʔλੜΛආ͚ΔʢಛʹσʔλϕʔεΞΫηε͍ʣ • ୯ମςετʹدͤΔʢ݁߹ςετ͍ʣ
Slide 37
Slide 37 text
• RSpecͩͱྑ͍ςετʹ͍ͭͯٞʹͳΓ͕ͪ • letͱlet!ͱbeforeͷ͍͚ • contextͱitʹຊޠΛ͑Δ͔ʁ • etc… • ϩʔΧϧͳ׳शʹै͏ͷ͕٢
Slide 38
Slide 38 text
4. ࣮ԋʂ ςετϑΝʔετ