Slide 1

Slide 1 text

Shell Script Testing Framework shunit2 13೥9݄19೔໦༵೔

Slide 2

Slide 2 text

Ruby On Rails͕ࣾ಺Ͱ ࢖༻͞ΕΔΑ͏ʹͳΓɺ UnitTest͕ॻ͔ΕΔΑ͏ʹ ͳ͖ͬͯ·ͨ͠ 13೥9݄19೔໦༵೔

Slide 3

Slide 3 text

ʊਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹɹɹςετίʔυ͕ແ͍ͷͰϨϏϡʔʹ஋͠ͳ͍ɹɹʻ ʉ:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:?:ʉ 13೥9݄19೔໦༵೔

Slide 4

Slide 4 text

๻ͷॴଐ͢ΔνʔϜ͸Shell(Bash)Ͱ ৭ʑ࡞ۀ͢Δࣄ͕ଟ͍ΜͰ͕͢ 13೥9݄19೔໦༵೔

Slide 5

Slide 5 text

ҰํͰεΫϦϓτ͕ଟ͘ ͳ͖ͬͯͨͷͰ ͪΌΜͱςετΛॻ͖͍ͨͱࢥ͍ shunit2Λಋೖ͠·ͨ͠ 13೥9݄19೔໦༵೔

Slide 6

Slide 6 text

࢖͍ํ 13೥9݄19೔໦༵೔

Slide 7

Slide 7 text

※஫ҙ఺ 1.ςετؔ਺͸”test”͔Β ͸͡·Δ໊લʹ͍ͯͩ͘͠͞ 2.shunit2͸࠷ޙʹinclude ͍ͯͩ͘͠͞ 13೥9݄19೔໦༵೔

Slide 8

Slide 8 text

shunit2/src/shunit2 Λinclude 13೥9݄19೔໦༵೔

Slide 9

Slide 9 text

testͰ͸͡·Δؔ਺Λॻ͘ 13೥9݄19೔໦༵೔

Slide 10

Slide 10 text

scriptͷ࣮ߦ 13೥9݄19೔໦༵೔

Slide 11

Slide 11 text

ςετʹࣦഊ͢Δύλʔϯ 13೥9݄19೔໦༵೔

Slide 12

Slide 12 text

݁Ռ 13೥9݄19೔໦༵೔

Slide 13

Slide 13 text

ղઆ 13೥9݄19೔໦༵೔

Slide 14

Slide 14 text

TestingFrameworkͰ͸Ұൠతʹ Assertions(Ξαʔγϣϯɿද໌) ͱ͍͏ɺϓϩάϥϜͷ ಈ࡞݁Ռ͕ظ଴͍ͯ͠Δ΋ͷͱ ֬ೝ͢ΔͨΊͷػೳ͕͋Γ·͢ 13೥9݄19೔໦༵೔

Slide 15

Slide 15 text

ઌఔͷσϞͰ͸ shunit2ʹඋ͑ΒΕͯΔ assertEquals ͱ͍͏ؔ਺Λ࢖͍ɺ 2ͭͷ஋Λൺֱ͍ͯ͠·ͨ͠ 13೥9݄19೔໦༵೔

Slide 16

Slide 16 text

assertEqualsؔ਺͸ Ҿ਺Λ2ͭ౉͢ͱͦͷ2ͭΛൺֱ͠ Ұக͍ͯͨ͠Β੒ޭɺ ͦ͏Ͱͳ͔ͬͨΒࣦഊͱ͍͏ ϨϙʔτΛग़ྗ͠·͢ 13೥9݄19೔໦༵೔

Slide 17

Slide 17 text

ςετ௨Δ 13೥9݄19೔໦༵೔

Slide 18

Slide 18 text

ςετ௨Βͳ͍ 13೥9݄19೔໦༵೔

Slide 19

Slide 19 text

͜Ε͕UnitTestͷجຊͰ͢ ؆୯Ͱ͢Ͷʂ 13೥9݄19೔໦༵೔

Slide 20

Slide 20 text

※஫ҙ఺ʢେࣄͳࣄͳͷͰryʣ 1.ςετؔ਺͸”test”͔Β ͸͡·Δ໊લʹ͍ͯͩ͘͠͞ 2.shunit2͸࠷ޙʹinclude ͍ͯͩ͘͠͞ 13೥9݄19೔໦༵೔

Slide 21

Slide 21 text

Demo2 https://github.com/YudaiSuzuki/shunit2_demo 13೥9݄19೔໦༵೔

Slide 22

Slide 22 text

Ҿ਺Λ*2ͯ͠ฦؔ͢਺ͷςετ 13೥9݄19೔໦༵೔

Slide 23

Slide 23 text

ϓϩμΫτͷίʔυ 13೥9݄19೔໦༵೔

Slide 24

Slide 24 text

ςετͷίʔυ 13೥9݄19೔໦༵೔

Slide 25

Slide 25 text

oneTimeSetUp ςετͷҝͷઃఆͷಡΈࠐΈΛߦ͏ؔ਺ɻ ϑΝΠϧΛincludeͨ͠ΓɺςετσʔλΛ ςετ༻DBʹϩʔυͨ͠Γ͢Δ͜ͱ͕ Ͱ͖·͢ɻ ্هͰಡΈࠐΜͩ෺Λফ͍ͨ࣌͠͸ oneTimeTearDown ͱ͍͏ؔ਺Λ࢖༻͠·͢ɻ 13೥9݄19೔໦༵೔

Slide 26

Slide 26 text

Ҿ਺ʹ਺஋Ҏ֎Λ౉͢ͱ Τϥʔ͕ग़ΔΑ͏ʹ͍ͨ͠ 13೥9݄19೔໦༵೔

Slide 27

Slide 27 text

13೥9݄19೔໦༵೔

Slide 28

Slide 28 text

13೥9݄19೔໦༵೔

Slide 29

Slide 29 text

assertTrue / assertFalse assertTrue͸shellͷcondition͕0Ͱ͋Ε͹ ੒ޭͱݟͳ͠·͢ɻ assertFalse͸0Ҏ֎Ͱ͋Ε͹ ੒ޭͱΈͳ͠·͢ɻ ͜͜Ͱ͸ɺؔ਺ͷฦΓ஋ͷνΣοΫͱͯ͠ ࢖༻͍ͯ͠·͢ɻ 13೥9݄19೔໦༵೔

Slide 30

Slide 30 text

ݩͷؔ਺ʹ ܕͷνΣοΫػೳΛೖΕΔ 13೥9݄19೔໦༵೔

Slide 31

Slide 31 text

13೥9݄19೔໦༵೔

Slide 32

Slide 32 text

13೥9݄19೔໦༵೔

Slide 33

Slide 33 text

shunit2͸ಋೖ͕؆୯ͳͷͰɺ UnitTestॻ͍ͨ͜ͱͳ͍ਓ΋ ׂͱ؆୯ʹࢼͤΔͱࢥ͍·͢ 13೥9݄19೔໦༵೔

Slide 34

Slide 34 text

͓·͚ ඪ४ग़ྗʹ৭Λ෇͚Δ 13೥9݄19೔໦༵೔

Slide 35

Slide 35 text

shunit2ͷςετ݁Ռදࣔ͸ σϑΥϧτͰ͸৭͕͍ͭͯ·ͤΜ 13೥9݄19೔໦༵೔

Slide 36

Slide 36 text

TDD͢ΔͳΒ ΍͸Γ৭͕͍ͭͯΔํ͕ ؾ෼͕৐ΔͷͰ… 13೥9݄19೔໦༵೔

Slide 37

Slide 37 text

https://github.com/YudaiSuzuki/ shunit2_demo/commit/ 62fdb8bc13073267a1cb8c72a7df7eb 8ce7bcddb 13೥9݄19೔໦༵೔

Slide 38

Slide 38 text

ࢀߟ http://a4p.me/archives/1157 13೥9݄19೔໦༵೔

Slide 39

Slide 39 text

Demo2ͷίʔυ͸Լهʹ͋ΔͷͰ ࢼ͍ͨ͠ਓ͸cloneͯ͠࢖͍ͬͯͩ͘͞ ※masterϒϥϯν͸shebang͕ ๻ͷݸਓ؀ڥ࢓༷ʹͳͬͯ·͢ɻ linuxϒϥϯν͸/bin/bashʹͳͬͯ·͢ https://github.com/YudaiSuzuki/shunit2_demo 13೥9݄19೔໦༵೔

Slide 40

Slide 40 text

Enjoy Testing!! 13೥9݄19೔໦༵೔