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

テストを書いたことがないエンジニアがテストを書けるようになるまでやったこと at PH...

Kazuki Higashiguchi
July 14, 2018
3.5k

テストを書いたことがないエンジニアがテストを書けるようになるまでやったこと at PHPカンファレンス関西2018

テストを書いたことがないエンジニアがテストを書けるようになるまでやったこと at PHPカンファレンス関西2018

https://2018.kphpug.jp/

Kazuki Higashiguchi

July 14, 2018
Tweet

More Decks by Kazuki Higashiguchi

Transcript

  1. ࣗݾ঺հ !,IJHBTIJHVDIJ౦ޱ࿨ᏻ w ॴଐɿ#"4&גࣜձࣾ #"4&1SPEVDU%JWJTJPO αʔόαΠυΤϯδχΞ w ग़਎ɿฌݿݝ੢ٶࢢ w ͜Ε·Ͱͷओͳ͓࢓ࣄɿ

    w ʮ#"4&ʯͷܾࡁྖҬ w 1)1ɾ$BLF1)1ͷόʔδϣϯΞοϓ w ࢖༻ݴޠɿ1)1(P w #MPH w IUUQLIJHBTIJHBTIJIBUFOBCMPHDPN w (JUIVC w IUUQTHJUIVCDPN,IJHBTIJHVDIJ
  2. ͦ΋ͦ΋ԿނςετΛॻ͘ͷ͔ ʢ˞ݸਓతͳݟղͰ͢ʣ ʮԶ͸ͪΌΜͱςετॻ͍ͨΜ΍ʂʯͱ͍͏ࣗ৴ͱ ετϨεܰݮ w ୯ମͰͷಈ͖ΛอূʹͳΔ w ର৅ϝιουͷ࢓༷ॻʹͳΔ w ʮຊ౰ʹಈ͘ͷ͔ʯͱ͍͏ετϨε͕ݮΔ

    w ϦϑΝΫλϦϯά͕༰қʹͳΔ w ʜFUD <ࢀߟ> ʮ૊৫ʹςετΛॻ͘จԽΛࠜ෇͔ͤΔઓུͱઓज़ʯIUUQT XXXTMJEFTIBSFOFUU@XBEBUFTUTUSBUFHZBOEUBDUJDT
  3. ςετεςʔδ ࣗ෼ͷίʔυʹςετΛॻ͘ɿୡ੒͍ͨ͜͠ͱ w ࣗ෼ͷίʔυʹʮςετΛॻ͘ʯࣄ͕Ͱ͖Δ w 1)16OJUͳͲͰABTTFSU999AͰ͖Δ w ʮ΍ͬͨ͜ͱແ͍ʯˠʮ΍ͬͨ͜ͱ͋Δʯ΁ public function

    testSample(): void { $this->assertTrue($this->SampleTestModel->Sample(‘hoge’); $this->assertFalse($this->SampleTestModel->Sample(‘huga’); $this->assertTrue($this->SampleTestModel->Sample(‘yapu’); }
  4. ςετεςʔδ ࣗ෼ͷίʔυʹςετΛॻ͘ɿࢀߟʹͨ͠΋ͷ w ಉ྅ͷίʔυ w ݟΑ͏ݟ·ͶͰ΍ͬͯΈΔ w ެࣜνϡʔτϦΞϧ w 1)16OJUެࣜνϡʔτϦΞϧ

    w IUUQTQIQVOJUEFHFUUJOHTUBSUFE QIQVOJUIUNM w ϑϨʔϜϫʔΫͷެࣜυΩϡϝϯτɺ5FTUষ w IUUQTCPPLDBLFQIQPSHKB EFWFMPQNFOUUFTUJOHIUNM
  5. ςετεςʔδ ςετ؍఺ͷ໢ཏΛҙࣝ͢Δɿࢀߟࢿྉ w ςετ͢ΔͨΊʹ1)16OJUͷػೳΛ֮͑Δ w ྫ֎ͷςετ w 1)16OJUFYQFDUFE&YDFQUJPO w IUUQTQIQVOJUEFNBOVBMKB

    BQQFOEJYFTBOOPUBUJPOTIUNMBQQFOEJYFTB OOPUBUJPOTFYQFDUFE&YDFQUJPO w EBUB1SPWJEFS w 1)16OJUEBUB1SPWJEFS w QIQVOJUSFBEUIFEPDTJPFOXSJUJOH UFTUTGPSQIQVOJUIUNM w 1)16OJUͱσʔλϓϩόΠμͱςετέʔεੜ੒ w IUUQTRJJUBDPN)JSBLVJUFNT DGFFEBE
  6. ςετεςʔδ ςετ؍఺ͷ໢ཏΛҙࣝ͢Δɿࢀߟࢿྉ w ςετ͢ΔͨΊʹ1)16OJUͷػೳΛ֮͑Δ w .PDL w 1)16OJUUFTUEPVCMFT w IUUQTQIQVOJUEFNBOVBMFOUFTU

    EPVCMFTIUNM w ϨϏϡʔ୯Ґͷ෼ׂ w ϨϏϡʔΛ΋Β͍΍͍͢ࡉ͔͍ ϓϧϦΫͷ੾Γ෼͚ํ BU1)1FS,BJHJ w IUUQTTQFBLFSEFDLDPNLIJHBTIJHVDIJ SFCJZVXPNPSBJZBTVJYJLBJQVSVSJLVGBMTFRJF SJGFOLFGBOHBUQIQFSLBJHJ
  7. ςετεςʔδ طଘίʔυʹςετΛॻ͘ɿࠔ೉ w طଘίʔυʹର͢Δςετͷࠔ೉ w όάͳͷ͔࢓༷ͳͷ͔ w ςετ͠ʹ͘͞ w ֎෦࿈ܞ

    w ੹຿ͷଟ͍ίʔυ w ࣮ߦ·Ͱʹଟ͘ͷʮ४උʯΛཁ͢Δ΋ͷ w AFYJU AͰςετϓϩηε͕ࢮ͵ w ʜFUD
  8. ςετεςʔδ طଘίʔυʹςετΛॻ͘ɿऔΓ૊Έํ w ςετ͠΍͍͢ίʔυʹվળ w ʮґଘੑ஫ೖʢ%*ʣʯͳͲΛߦ͍݁߹౓ΛԼ͛ ͍ͯ͘ w ςετ͢ΔͨΊͷ࢓૊ΈΛ࢖͏ w

    ࣌ؒʹґଘͨ͠ςετUJNFDPQʜFUD w ϞοΫԽ w 4UBUJDNFUIPETUBUJDNPDLʜFUD w ૊ΈࠐΈؔ਺SVOLJUʜFUD w ˞༻๏༻ྔʹ͝஫ҙ͍ͩ͘͞
  9. ςετεςʔδ طଘίʔυʹςετΛॻ͘ɿࢀߟࢿྉ w ςετ͢ΔͨΊͷ࢓૊Έ w IOXQIQUJNFDPQ w IUUQTHJUIVCDPNIOXQIQUJNFDPQ w UPUPUPTIJTUBUJDNPDL

    w IUUQTHJUIVCDPNUPUPUPTIJTUBUJDNPDL w SVOLJUͱVPQ[ʹ͍ͭͯ w IUUQTRJJUBDPNLVOJUJUFNT DBBEFFDG