Slide 1

Slide 1 text

Web։ൃʹ͓͚Δ ςετઓུ Place: ΏΔ͸ͪ.it Date: 2019-06-26 Speaker: େ૔խ࢙

Slide 2

Slide 2 text

͸͡Ίʹ

Slide 3

Slide 3 text

ςετͷ༻ޠΛ੔ཧͯ͠ΈΔ

Slide 4

Slide 4 text

ࢲՈ൛ςετ༻ޠू • E2EςετɿϢʔβʔΠϯλʔϑΣΠε͔Β σʔλϕʔε·ͰΛҰ؏͢ΔςετɺγφϦΦ Λ༻ҙͯ͠ਐΊΔ৔߹͕ଟ͍ɺผ໊γεςϜς ετ • ݁߹ςετɿෳ਺ͷίϯϙʔωϯτΛ݁߹͠ ͯߦ͏ςετɺػೳ୯ҐͰߦΘΕΔ৔߹͕ଟ ͘ϑΟʔνϟʔςετ͸͜ͷҰछ

Slide 5

Slide 5 text

ࢲՈ൛ςετ༻ޠूʢଓʣ • Ϣχοτςετɿ୯Ұͷιϑτ΢ΣΞίϯϙʔ ωϯτͷΈΛର৅ͱͨ͠ςετɺݱ࣮తʹ͸୯ ҰͷϑΝΠϧΛର৅ͱ͢Δ৔߹͕ଟ͘ɺର৅ʹ Αͬͯݺͼ໊΋มΘΔʢϞσϧςετɾϏϡʔ ςετͳͲʣ • ςετμϒϧɿςετதʹίϯϙʔωϯτΛஔ ͖׵͑Δ୅༻඼ʢελϒɾϞοΫɾεύΠͳͲʣ

Slide 6

Slide 6 text

ςετΛॻ͍ͯԿ͕خ͍͠ Ͱ͔͢ʁ

Slide 7

Slide 7 text

όάͷݮগʁ

Slide 8

Slide 8 text

҆৺ײʁ

Slide 9

Slide 9 text

։ൃऀͷ޾෱ʁ

Slide 10

Slide 10 text

։ൃऀͷ޾෱ʂ

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

଎͍ςετ

Slide 16

Slide 16 text

଎͍ςετͷͨΊͷํ਑ • E2Eςετ͸ਖ਼ৗܥͷΈʢҟৗܥ͸Ϣχοτς ετͰΧόʔ͢Δʣ • DB΁ͷΞΫηεΛՄೳͳݶΓݮΒ͢ • ͱͯ΋ॏ͍ॲཧ͸ςετμϒϧʹஔ͖׵͑Δ

Slide 17

Slide 17 text

ϖʔδωʔγϣϯͷ۩ମྫ # Bad @books = create_list(:book, 11) visit books_url expect(page).not_to have_content(‘Book11’) # Good @book = create_list(:book, 2) PER_PAGE = 1 # తͳ΍ͭ visit books_url expect(page).not_to have_content(‘Book2’)

Slide 18

Slide 18 text

ઃܭπʔϧͱͯ͠ͷςετ

Slide 19

Slide 19 text

ςετͰઃܭ͢ΔͨΊʹ • ݪଇɺςετΛઌʹॻ͘ʢςετϑΝʔετʣ • ςετ͕௕͗͢Δɾෳࡶ͗͢Δɾ೉͗͢͠Δ ৔߹͸ϓϩμΫγϣϯίʔυͷ࠶ઃܭΛݕ౼ • ςετ಺ʹςετμϒϧ͕ଟ͗͢Δ৔߹͸ґ ଘؔ܎Λݟ௚͢

Slide 20

Slide 20 text

ςετ͕ࠔ೉ͳίʔυྫ # foo.rb class Foo def do_something(arg1, arg2, arg3 = nil, params = {}) end end # foo_spec.rb context ‘when arg1 is :hoge’ do context ‘when arg2 is…

Slide 21

Slide 21 text

ςετ͕༰қͳίʔυྫ # foo.rb class Foo def do_something(arg1) bar.do_another(arg2) end end # foo_spec.rb context ‘when arg1 is :hoge’ do before { allow(bar).to receive(:do_another) { hoge }

Slide 22

Slide 22 text

มߋʹڧ͍ςετ

Slide 23

Slide 23 text

ςετ΋ίʔυ • ݪଇɺύϒϦοΫͳΠϯλʔϑΣΠεͷΈΛ ςετ͢Δ • Ϗϡʔ͸ςετ͠ͳ͍ʢมԽ͕଎͍͔ΒɺͲ ͏ͯ͠΋͚ͨ͠Ε͹E2EͰʣ • ςετର৅ͷ಺෦ঢ়ଶ͸஌ͬͯ͸͍͚ͳ͍ ʢΠϯελϯεม਺ͱ͔ʣ

Slide 24

Slide 24 text

͍͞͝ʹ

Slide 25

Slide 25 text

ࣗಈςετ͸։ൃऀͷͨΊͷ πʔϧ

Slide 26

Slide 26 text

ςετ͕΋ͨΒ͢޾෱౓Λ ࠷େԽ͍͖·͠ΐ͏

Slide 27

Slide 27 text

ͱ͜ΖͰɿ

Slide 28

Slide 28 text

͋Μͨ୭ʁ

Slide 29

Slide 29 text

ࣗݾ঺հ • ໊લɿେ૔խ࢙ • ॴଐɿϑϦʔϥϯε • ޷͖ͳݴޠɿRuby • ޷͖ͳΤσΟλɿVim