$30 off During Our Annual Pro Sale. View Details »

Goのテストの基本と開発フロー

y_matsuwitter
September 11, 2014

 Goのテストの基本と開発フロー

標準パッケージと小さいツールの組み合わせで十分テストできますよ的な話 @GolangTestNight(Gunosy.go#10)

y_matsuwitter

September 11, 2014
Tweet

More Decks by y_matsuwitter

Other Decks in Programming

Transcript

  1. (Pͷςετͷجຊͱ
    ։ൃϑϩʔ
    !Z@NBUTVXJUUFS

    View Slide

  2. !Z@NBUTVXJUUFS
    w (VOPTZJOD ࣥߦ໾һ
    w ศར԰
    w ਖ਼࠲POόϥϯεϘʔϧ
    w (PMBOH
    w झຯ͸੡໙ۀ

    View Slide

  3. ΞδΣϯμ
    w ιϑτ΢ΣΞςετͱ(Pݴޠͷࢥ૝
    w UFTUJOHύοέʔδͷ঺հ
    w ςετΛؚΊ࣮ͨࡍͷ։ൃϑϩʔͷҰྫ

    View Slide

  4. օ͞Μ(Pॻ͍ͯ·͔͢ʁ

    View Slide

  5. (Pͷςετͯ͠·͔͢ʁ

    View Slide

  6. ͦ΋ͦ΋ςετͱ͸
    w ػೳʹόά͕ແ͍͜ͱΛ֬ೝ͢Δʢػೳཁ݅ʣ
    w αʔϏεͷ඼࣭Λ֬ೝ͢Δʢඇػೳཁ݅ʣ

    View Slide

  7. ػೳཁ݅
    w ίʔυ͕ຬͨ͢΂͖࢓༷ʹ͍ͦͬͯΔ͜ͱ
    w શͯͷೖྗ஋ʹରͯ͠ɺద੾ʹॲཧͰ͖͍ͯΔ
    ͜ͱ

    View Slide

  8. ඇػೳཁ݅
    w ੑೳ͕े෼Ͱ͋Δ͜ͱ
    w ηΩϡϦςΟʹ໰୊͕ͳ͍͜ͱɹɹʜͳͲͳͲ

    View Slide

  9. ςετ͸
    ͦΕ͚ͩͰ͸ͳ͍

    View Slide

  10. ςετͱνʔϜ։ൃ
    w Ϟδϡʔϧͷಠཱੑ͕୲อ͠΍͍͢
    w ଐਓੑͷഉআ

    View Slide

  11. 5FTUBCMFͳϞδϡʔϧ
    w ֎෦ͷଞͷϞδϡʔϧʹґଘ͠ͳ͍
    w ෭࡞༻͕গͳ͍

    View Slide

  12. ଐਓੑͷഉআ
    w ςετ͕࢓༷ॻ
    w ॻ͍ͨίʔυ΍ϦϑΝΫλͨ͠ίʔυͷଥ౰ੑ
    ͕ͩΕͰ΋ݕূͰ͖Δ

    View Slide

  13. (Pͷςετࢥ૝
    w /P"TTFSUJPO
    w /PUFTUIFMQFS

    View Slide

  14. 8IZOPBTTFSUJPO
    w l1SPQFSFSSPSIBOEMJOHNFBOTUIBUTFSWFST
    DPOUJOVFPQFSBUJPOBGUFSOPOGBUBMFSSPST
    JOTUFBEPGDSBTIJOHz
    w l1SPQFSFSSPSSFQPSUJOHNFBOTUIBUFSSPST
    BSFEJSFDUBOEUPUIFQPJOU TBWJOHUIF
    QSPHSBNNFSGSPNJOUFSQSFUJOHBMBSHF
    DSBTIUSBDFz

    View Slide

  15. ͬ͘͟Γݴ͏ͱ
    w "TTFSUJPOͰॲཧΛதஅ͢ΔΑΓ΋ɺΫϥογϡ
    ͤ͞ͳ͍͜ͱΛ༏ઌ
    w ద੾ͳΤϥʔϨϙʔτ͕େ੾

    View Slide

  16. 8IZOPUFTUIFMQFST
    w l"SFMBUFEQPJOUJTUIBUUFTUJOHGSBNFXPSLT
    UFOEUPEFWFMPQJOUPNJOJMBOHVBHFTPGUIFJS
    PXO XJUIDPOEJUJPOBMTBOEDPOUSPMTBOE
    QSJOUJOHNFDIBOJTNT CVU(PBMSFBEZIBTBMM
    UIPTFDBQBCJMJUJFTXIZSFDSFBUFUIFN z

    View Slide

  17. ͬ͘͟Γݴ͏ͱ
    w (Pݴޠࣗମʹςετʹؔ͢Δॆ෼ͳࢧԉػߏ͕
    උΘ͍ͬͯΔͷͰɺ৽ͨͳ%4-ͳͲͷशಘʹί
    ετΛׂ͔ͣʹςετ͢Δ͜ͱΛ͓͢͢Ί͢Δ

    View Slide

  18. (PMBOHͰͷఆੴ
    w l5IFUFTUNJHIUXPSLCFUUFSJGUBCMFESJWFOz
    w ਖ਼͍͠ೖྗͱग़ྗͷ૊Λ࠷ॳʹ༻ҙ͠ɺͦΕΒ
    ͕୲อ͞Ε͍ͯΔ͔νΣοΫ͍ͯ͘͠

    View Slide

  19. UFTUJOHύοέʔδ

    View Slide

  20. جຊ
    w HPUFTUίϚϯυΛ࣮ߦ͢Δͱɺ@UFTUHPϑΝΠ
    ϧ͕શͯςετ࣮ߦର৅ͱͯ͠ςετ։࢝
    w ςετର৅ϝιουΛߜΔͳͲࡉ͔͍༷ʑͳΦ
    ϓγϣϯ͕͋Γ·͢

    View Slide

  21. ҎԼͷίʔυΛϕʔεʹύοέʔδ঺հ
    QBDLBHFNBJO
    !
    GVOD%PVCMF JJOU
    JOU\
    SFUVSOJ
    ^

    View Slide

  22. 5FTUܥ

    View Slide

  23. View Slide

  24. ΍Δ͜ͱ
    w GVOD5FTU UUFTUJOH5
    Λ࣮૷
    w U-PH U&SSPS U'BUBMͳͲΛ༻͍ɺςετͷࣦഊ
    ͳͲΛద੾ͳϑΥʔϚοτͰ఻͑Δ
    w ࣮ߦHPUFTU

    View Slide

  25. #FODINBSLܥ

    View Slide

  26. View Slide

  27. ΍Δ͜ͱ
    w GVOD#FODINBSL UUFTUJOH#
    Λ࣮૷
    w C/ C3VO1BSBSFMM C3FTUBSU5JNFSͳͲΛ༻͍ɺ
    ϕϯνϚʔΫΛਖ਼͘͠૸ΒͤΔ͜ͱɻ
    w ࣮ߦHPUFTUCFODI

    View Slide

  28. &YBNQMFܥ

    View Slide

  29. View Slide

  30. ΍Δ͜ͱ
    w GVOD&YBNQMF
    Λ࣮૷
    w GVODͷ຤ඌʹ0VUQVU͔Β࢝·Δɺظ଴͞Ε
    Δඪ४ग़ྗΛίϝϯτͱͯ͠ॻ͖ࠐΉ
    w ࣮ࡍͷඪ४ग़ྗͱίϝϯτΛൺֱ͢Δ
    w ࣮ߦHPUFTU

    View Slide

  31. $BTF4UVEZ
    Ϟμϯͳ
    ։ൃϑϩʔߏங

    View Slide

  32. ͓୊
    w 6TFS"HFOUΛೖྗ͢ΔͱJ1IPOF "OESPJE ͦ
    ͷଞͷ͍ͣΕ͔Λฦͯ͘͠ΕΔϞδϡʔϧΛ࡞Δ

    View Slide

  33. ͱΓ͋͑ͣ
    ͬ͘͟Γ֎࿮Λ࡞Δ

    View Slide

  34. View Slide

  35. EPDHP
    HPEPDʹͯɺύοέʔδ಺ͷEPDHP͸0WFSWJFXͳͲͰ
    ར༻͞ΕΔͷͰɺॻ͍ͯΈ·͠ΐ͏ɻ

    View Slide

  36. (P%PDΛग़ྗ͢Δ
    w HPEPDIUUQb`
    w (JUIVCͳͲͷ1VCMJD3FQPͳΒHPEPDPSHͰ֬
    ೝͰ͖·͢
    w IUUQTHPEPDPSHHJUIVCDPNZ
    NBUTVXJUUFSEFWJDFUZQF

    View Slide

  37. View Slide

  38. ςετΛॻ͘

    View Slide

  39. View Slide

  40. &YBNQMF

    View Slide

  41. #FODINBSL

    View Slide

  42. ςετΛ࣮ߦͯ͠ΈΔ

    View Slide

  43. $PWFSBHFϨϙʔτ
    ҎԼͷίϚϯυͰ֬ೝͰ͖Δ
    HPUFTUDPWFSQSPpMFDPWFSBHFPVU
    HPUPPMDPWFSBHFIUNMDPWFSBHFPVU

    View Slide

  44. $*αʔϏεʹ௥Ճ
    w $JSDMF$*Ͱ͋Ε͹࿈ܞ͢Δͩ
    ͚Ͱ0,
    w ౰વίέΔ
    w IUUQTDJSDMFDJDPNHIZ
    NBUTVXJUUFSEFWJDFUZQF

    View Slide

  45. αϯϓϧ͸ͪ͜Β
    w ϦϙδτϦIUUQTHJUIVCDPNZ
    NBUTVXJUUFSEFWJDFUZQF
    w $JSDMF$*IUUQTDJSDMFDJDPNHIZ
    NBUTVXJUUFSEFWJDFUZQF
    w (P%PDIUUQTHPEPDPSHHJUIVCDPNZ
    NBUTVXJUUFSEFWJDFUZQF

    View Slide

  46. ·ͱΊ
    w ςετέʔεʹ߹ΘͤͯͦΕͧΕʹద੾ͳςετ
    Λߏங͢Δ͜ͱ͕(PͰ͸ਪ঑͞Ε͍ͯΔɻ
    w (PݴޠͳΒେ͖ͳϑϨʔϜϫʔΫΛಋೖ͢Δ͜
    ͱͳ͘ɺϞμϯͳ։ൃϑϩʔ͕ߏஙͰ͖Δʂ

    View Slide

  47. )BQQZ(PDPEJOH

    View Slide