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

どうしようJUnit5

irof
December 03, 2016

 どうしようJUnit5

JJUG CCC 2016 Fall

irof

December 03, 2016
Tweet

More Decks by irof

Other Decks in Programming

Transcript

  1. @irof
    Ͳ͏͠Α͏+6OJU
    5
    ++6($$$'BMM
    [email protected]

    View Slide

  2. ηογϣϯ֓ཁ
    ϦϦʔεؒۙͷ+6OJUɻ
    +6OJUΛ࢖༻͍ͯ͠Δํ͸ଟ͍͔ͱ
    ࢥ͍·͕͢ɺ࣍όʔδϣϯͷ଍Ի͕ฉ
    ͖͑ͯ͜·ͨ͠ɻ
    ݱঢ়ҡ͔࣋Ҡߦ͔ͳͲɺʮͲ͏͠Α͏ʯ
    ͱࢥ͍ͬͯΔਓ͸ଟ͍Ͱ͠ΐ͏ɻࢲ΋
    ͦͷҰਓͰ͢ɻ
    ͦΜͳΘ͚ͰɺͲ͏͠Α͏͔ߟ͑Δࡐ
    ྉΛूΊͯ࿩ͦ͏ͱࢥ͍·͢ɻ

    View Slide

  3. ͍͘Β͔ͷ஫ҙ఺
    +6OJU͸·ͩϦϦʔε͞Ε͍ͯ·
    ͤΜɻมΘΓ·͢ɻ
    ࣮຿Ͱ͸࢖͍ͬͯ·ͤΜɻ
    ͭ·Γໝ૝ηογϣϯͰ͢ɻ
    ଞͷ෦԰ʹߦ͜͏ɻ

    View Slide

  4. ͜ͷεϥΠυͰ
    ࢖༻͍ͯ͠Δόʔδϣϯ
    [email protected]
    +6OJU.
    (SBEMF
    +FOLJOT

    View Slide

  5. ϩΰ

    View Slide

  6. Ͳ͏͠Α͏
    ͍·͙͢+6OJUΛ࢖͏ʁ
    +6OJU͔Β+6OJUʹ৐Γ׵͑Δʁ
    ৽͘͠+6OJU࢖͏ͷ͸ʁ
    +6OJU࢖͏࣌ʹࠔΔ͜ͱ͸ʁ

    View Slide

  7. ౴͑ͳΜͯͳ͍ͷͰ
    +6OJU .
    Λઆ໌͠·͢
    ϝϦοτσϝϦοτͱ͔
    ͕࣌ؒ͋Ε͹͜ͷล΋࿩͠·͢
    +6OJUͰށ࿭͍ͦ͏ͳͱ͜Ζ
    +6OJU͔Βͷ৐Γ׵͑ੋඇ

    View Slide

  8. +6OJUͷݱঢ়

    View Slide

  9. .
    .͔͍ͪ͏ͪ
    .ͦͷ͏ͪ
    ("2༧ఆ
    +%,ʹ͋ΘͤΔײ͔͡ͳʁ

    View Slide

  10. .͕Ͱ͢

    View Slide

  11. +6OJUͱͷޓ׵ੑ

    View Slide

  12. ͳ͍

    View Slide

  13. ޓ׵ੑʹ͍ͭͯ
    ผͷϑϨʔϜϫʔΫͰ͢
    ผ෺ͳͷͰޓ׵ͳΜͯ͋ΔΘ͚
    ΋ͳ͍Ͱ͢
    ʮόʔδϣϯΞοϓͯͦ͠ͷ··
    ࢖͑Δʯ͸͋Γ·ͤΜ

    View Slide

  14. ͳΜͰผͳͷʁ

    View Slide

  15. ผ෺ͳͷͰڞଘͰ͖Δ
    BSUJGBDU*EHSPVQ*E͕ҧ͏
    ύοέʔδ΋ҧ͏
    JUnit 5 PSHKVOJUKVQJUFS
    JUnit 4 PSHKVOJU
    JUnit 3 KVOJUGSBNFXPSL

    View Slide

  16. ڞଘʁ
    +6OJU +6OJU1MBUGPSN
    Ͱ+6OJUΛ
    ಈ࡞ͤ͞Δ
    +6OJU 3VOOFS
    Ͱ+6OJUͷςετ
    Λ࣮ߦ͢Δ
    +6OJUͷςετʹ+6OJUͷ3VMFΛ
    ద༻͢Δ
    ʜʜͳͲ͕ՄೳʹͳΔ

    View Slide

  17. ߏ੒ΛோΊͯΈΔ

    View Slide

  18. +6OJU
    +6OJU1MBUGPSN
    +6OJU+VQJUFS +6OJU7JOUBHF

    View Slide

  19. +6OJU1MBUGPSN
    KVOJUQMBUGPSN
    DPNNPOT
    KVOJUQMBUGPSN
    DPOTPMF KVOJUQMBUGPSN
    SVOOFS
    KVOJUQMBUGPSN
    HSBEMFQMVHJO
    KVOJUQMBUGPSN
    MBVODIFS
    KVOJUQMBUGPSN
    FOHJOF
    KVOJUQMBUGPSN
    TVSFpSFQSPWJEFS

    View Slide

  20. +6OJU+VQJUFS
    KVOJUKVQJUFSBQJ
    KVOJUKVQJUFS
    FOHJOF
    KVOJUQMBUGPSN
    DPNNPOT
    KVOJUQMBUGPSN
    FOHJOF
    KVOJUKVQJUFS
    NJHSBUJPOTVQQPSU

    View Slide

  21. +6OJU7JOUBHF
    KVOJUWJOUBHF
    FOHJOF
    KVOJUQMBUGPSN
    FOHJOF
    KVOJUKVOJU

    View Slide

  22. શମ
    KVOJUQMBUGPSN
    DPNNPOT
    KVOJUQMBUGPSNDPOTPMF KVOJUQMBUGPSNSVOOFS
    KVOJUQMBUGPSNHSBEMF
    QMVHJO
    KVOJUQMBUGPSNMBVODIFS
    KVOJUQMBUGPSNFOHJOF
    KVOJUQMBUGPSNTVSFpSF
    QSPWJEFS
    KVOJUWJOUBHFFOHJOF
    KVOJUKVQJUFSBQJ
    KVOJUKVQJUFSFOHJOF
    KVOJUKVOJU
    KVOJUKVQJUFSNJHSBUJPO
    TVQQPSU

    View Slide

  23. %FQFOEFODZ%JBHSBN
    .ͷ6TFS(VJEFͰ௥Ճ͞Εͨਤ

    View Slide

  24. ࢖ͬͯΈΔ

    View Slide

  25. +6OJUˠ+6OJU
    KVOJUKVOJU
    PSHKVOJUKVQJUFSKVOJUKVQJUFSBQJ.
    PSHKVOJUKVQJUFSKVOJUKVQJUFSFOHJOF.
    FOHJOF͸࣮ߦ࣌
    ͚ͩͰΑ͍

    View Slide

  26. ࢀߟϏϧυπʔϧͷઃఆ
    IUUQTHJUIVCDPNKVOJUUFBN
    KVOJUTBNQMFT

    View Slide

  27. ςετίʔυ

    View Slide

  28. ඞਢͷมߋ
    !5FTUͷύοέʔδ͕ҧ͏
    PSHKVOJU5FTU
    PSHKVOJUKVQJUFSBQJ5FTU

    View Slide

  29. ςετίʔυ
    PSHKVOJUKVQJUFSBQJ5FTU
    ݟͨ໨͸ಉ͡Ͱ͢

    View Slide

  30. ೚ҙͷมߋ
    Ϋϥε͸QVCMJDͰͳͯ͘Α͍
    ϝιου͸QVCMJDͰͳͯ͘Α͍
    ৽͍͠Ξαʔγϣϯ"1*

    View Slide

  31. ςετίʔυ
    QVCMJD͡Όͳͯ͘Α͍
    QVCMJD͡Όͳͯ͘Α͍
    PSHKVOJUKVQJUFSBQJ"TTFSUJPOT
    ݟͨ໨͸ಉ͡Ͱ͢

    View Slide

  32. ୯७ͳΒύοέʔδมߋͰࡁΉ

    View Slide

  33. ϚΠάϨʔγϣϯʹ͍ͭͯ͸
    6TFS(VJEFʹ݁ߏॻ͔ΕͯΔ
    ͨͩ͠ɺສೳͳखॱͰ͸ͳ͍

    View Slide

  34. ςετͷ࣮ߦ

    View Slide

  35. *OUFMMJ+*%&"
    *OUFMMJ+*%&"ͰରԠ͞Εͨ

    View Slide

  36. .ʹͨ͠Β
    *OUFMMJ+*%&"͕.Λ࢖ͬͯΔ͔Βɻ
    KVOJUQMBUGPSNMBVODIFS.Λ࢖͑͹0,

    View Slide

  37. (SBEMF
    UFTU$MBTT UFTU
    KVOJU1MBUGPSN5FTU
    ௥Ճ͞ΕΔλεΫ
    ແޮԽ͞ΕΔλεΫ
    ੍ޚՄೳ

    KVOJUQMBUGPSNHSBEMFQMVHJOͷग़൪

    View Slide

  38. ࣮ߦ݁Ռ͸͜Μͳײ͡
    )5.-ͷSFQPSU͸ࠓͷͱ͜Ζग़·ͤΜ

    View Slide

  39. +FOLJOT (SBEMF

    +FOLJOTʹ+6OJU݁ՌͷऩूΛͤͨ݁͞Ռ

    View Slide

  40. +FOLJOT
    (SBEMF.BWFO͕ಈ͔͘Β໰୊ͳ͍
    ݁Ռͷूܭ΋Ͱ͖Δ
    9.-ͷߏ଄͸ͦͷ··
    !%JTQMBZ/BNFʹ͸ະରԠ
    ଍͞Ε͚ͨͩͩ͠

    View Slide

  41. ൪֎+6OJUͰಈ͖㽂
    6TFS(VJEFࢀর

    View Slide

  42. +6OJUͰ+6OJUΛಈ͔͢
    !3VO8JUI +6OJU1MBUGPSNDMBTT

    View Slide

  43. ཧ۶্΋࣮ࡍ΋ಈ͚͘Ͳ
    ʮڞଘՄೳʯͬͯݴͬͨ΍ͭɻ
    +6OJUͷ্Ͱ+6OJUΛಈ͔ͨ͠Γɺ
    +6OJUͷ্Ͱ+6OJUΛಈ͔ͨ͠
    Γɺ΍Γ͗͢Δͱ͍͍ײ͡ʹࠞཚ
    Ͱ͖ͦ͏ɻ

    View Slide

  44. ػೳͷ঺հ

    View Slide

  45. Ұ௨Γͷ঺հ͸ͤͣɺ+6OJUͱͷ
    ൺֱΛத৺ʹ࿩͠·͢
    ػೳશମ͸6TFS(VJEFʹ͓೚ͤ
    े෼ͳ৘ใ͕͋Δ͚Ͳɺ

    ͦΜͳϘϦϡʔϜ͸ͳ͍Ͱ͢ɻ

    View Slide

  46. +6OJUͱͷ"1*ൺֱ

    View Slide

  47. "1*ൺֱͳͷͰ
    +6OJU+VQJUFSͷ࿩
    KVOJUKVQJUFSBQJ
    +6OJU1MBUGPSN΍+6OJU7JOUBHFͷ
    ग़൪͸ͳ͍Ͱ͢

    View Slide

  48. Ξϊςʔγϣϯ
    Ξαʔγϣϯ
    ֦ுϞσϧ
    ߏ଄Խ
    ύϥϝʔλʔԽ
    Ξ
    ϊςʔ
    γϣϯ
    Ξαʔ
    γϣϯ
    ֦ுϞ
    σϧ
    ߏ଄Խ
    ύϥ
    ϝʔ
    λʔԽ

    View Slide

  49. Ξϊςʔγϣϯ
    Ξ
    ϊςʔ
    γϣϯ
    Ξαʔ
    γϣϯ
    ֦ுϞ
    σϧ
    ߏ଄Խ
    ύϥ
    ϝʔ
    λʔԽ

    View Slide

  50. ͍͍ͩͨͦͷ··
    JUnit 4 JUnit 5
    !5FTU !5FTU
    !#FGPSF !#FGPSF&BDI
    !"GUFS !"GUFS&BDI
    !#FGPSF$MBTT !#FGPSF"MM
    !"GUFS$MBTT !"GUFS"MM
    !*HOPSF !%JTBCMFE

    View Slide

  51. ͳ͘ͳͬͨ
    JUnit 4 ͤͭΊ͍
    !3VO8JUI
    ςετͷ࣮ߦͷ࢓
    ํΛม͑Δ΍ͭ
    !3VMF
    !$MBTT3VMF
    ςετ࣮ߦ࣌ʹ͋
    Ε͜Ε͢Δ΍ͭ
    !'JY.FUIPE0SEFS ςετ࣮ߦॱΛݻ
    ఆ͢Δ΍ͭ
    ࣮ߦॱࢦఆ͸.ͰԿ͔ೖΔ༧ఆ

    View Slide

  52. PSEFSJOHϥϕϧΛݟ͍ͯͩ͘͞

    View Slide

  53. ৽͍͠ͷ
    JUnit 5 ͤͭΊ͍
    !/FTUFE &ODMPTFEʹࣅͨ΋ͷ
    !5BH $BUFHPSZʹࣅͨ΋ͷ
    !%JTQMBZ/BNF έʔε໊Λࢦఆ͢Δ
    !5FTU'BDUPSZ ಈతςετͰ࢖͏
    !&YUFOE8JUI ֦ுͰ࢖͏

    View Slide

  54. Ξαʔγϣϯ
    Ξ
    ϊςʔ
    γϣϯ
    Ξαʔ
    γϣϯ
    ֦ுϞ
    σϧ
    ߏ଄Խ
    ύϥ
    ϝʔ
    λʔԽ

    View Slide

  55. Ξαʔγϣϯ͸෼͚΍͍͢
    ςετಈ
    ͔͢ࢠ
    ςετ
    ςετ͞ΕΔࢠ
    ؀ڥ
    Ξαʔγϣϯ͸͜͜

    View Slide

  56. ஍ຯͳมߋ
    ഇࢭ
    BTTFSU5IBU
    ௥Ճ -BNCEBΛ࢖͏΋ͷ

    BTTFSU"MM
    BTTFSU5ISPXT
    BTTFSU5JNFPVU 1SFFNQUJWFMZ

    View Slide

  57. ஍ຯͳมߋ
    ഇࢭ
    BTTFSU5IBU
    ௥Ճ -BNCEBΛ࢖͏΋ͷ

    BTTFSU"MM
    BTTFSU5ISPXT
    BTTFSU5JNFPVU 1SFFNQUJWFMZ

    Ҿ͖ଓ͖࢖͍͍ͨ৔߹͸
    )BNDSFTUΛ࢖͍·͠ΐ͏

    View Slide

  58. ஍ຯͳมߋ
    ഇࢭ
    BTTFSU5IBU
    ௥Ճ -BNCEBΛ࢖͏΋ͷ

    BTTFSU"MM
    BTTFSU5ISPXT
    BTTFSU5JNFPVU 1SFFNQUJWFMZ

    !5FTUͷ஋ʹ
    ॻ͍ͯͨ΍ͭ

    View Slide

  59. "TTFSU+͸ಡΜͰ͍ͩ͘͞
    WPM
    ൃച

    View Slide

  60. ֦ுϞσϧ
    Ξ
    ϊςʔ
    γϣϯ
    Ξαʔ
    γϣϯ
    ֦ுϞ
    σϧ
    ߏ଄Խ
    ύϥ
    ϝʔ
    λʔԽ

    View Slide

  61. ֦ுํ๏͕ҰຊԽ
    3VOOFS
    &YUFOTJPO
    3VMF

    View Slide

  62. &YUFOTJPOͷ࢖͍ํ
    &YUFOTJPOͷ࣮૷ΫϥεΛ࡞ͬͯʔ
    !&YUFOE8JUIͰࢦఆ͢Δ

    View Slide

  63. &YUFOTJPOࡶײ
    ֦ுϙΠϯτʹԠͨ͡ΠϯλϑΣʔ
    εΛ࣮૷ͯ͠࡞Δ
    3VMFΛγϯϓϧʹͨ͠΋ͷ
    ख৮Γ͸ྑ͍
    3VMFͷΑ͏ͳສೳײ͸ͳ͍

    View Slide

  64. ࣮૷ΛΈͯΈΑ͏
    .PDLJUP&YUFOTJPO
    KVOJUUFBNʹΑΔ
    4QSJOH&YUFOTJPO
    4QSJOH'SBNFXPSLʹΑΔ
    TQSJOHUFTUʹೖΓͦ͏

    View Slide

  65. ͋·Γ৮Εͯͳ͍ͷͰ
    ৄ͍͠࿩͸ͦͷ͏ͪɻ

    View Slide

  66. ߏ଄Խ
    Ξ
    ϊςʔ
    γϣϯ
    Ξαʔ
    γϣϯ
    ֦ுϞ
    σϧ
    ߏ଄Խ
    ύϥ
    ϝʔ
    λʔԽ

    View Slide

  67. ςετίʔυͷߏ଄Խ
    !&ODMPTFE
    !/FTUFE

    View Slide

  68. &ODMPTFE

    View Slide

  69. /FTUFE

    View Slide

  70. &ODMPTFEWT/FTUFE
    /FTUFE͕֨ஈʹΑ͍
    TUBUJDෆཁʢඇTUBUJDʣ
    !#FGPSF&BDIͱ͔ॻ͚Δ
    !5FTUͱฒ΂ͯॻ͚Δ

    View Slide

  71. ύϥϝʔλʔԽ
    Ξ
    ϊςʔ
    γϣϯ
    Ξαʔ
    γϣϯ
    ֦ுϞ
    σϧ
    ߏ଄Խ
    ύϥ
    ϝʔ
    λʔԽ

    View Slide

  72. ύϥϝʔλʔԽ
    1BSBNFUFSJ[FE
    %ZOBNJD5FTU
    5IFPSZ

    View Slide

  73. %ZOBNJD5FTU

    View Slide

  74. %ZOBNJD5FTU
    !5FTU'BDUPSZΛ͚ͭΔ
    %ZOBNJD5FTUͷΠϯελϯεΛؚΉ
    4USFBN΍$PMMFDUJPOͳͲΛฦ͢
    ແݶετϦʔϜ΋ॲཧͰ͖Δ

    View Slide

  75. +6OJUʹͳ͍ػೳ
    ςετϨϙʔτ༻ͷ໊લ͕͚ͭΒ
    ΕΔ!%JTQMBZ/BNF
    ϝιουίϯετϥΫλ͕Ҿ਺Λ
    ड͚औΕΔ
    γφϦΦςετ޲͚ͷ֦ுʢະʣ

    View Slide

  76. ϝϦοτσϝϦοτ

    View Slide

  77. ϝϦοτ
    ίʔυ͕୹͘ͳΔ
    ֦ு೉౓͕Լ͕Δ
    ʢ৽ػೳʣ
    σϝϦοτ
    طଘͷ3VOOFS΍3VMF͕࢖͑ͳ͍
    *%&ͷରԠ

    View Slide

  78. ࢀߟ3VMFΛಈ͔͢&YUFOTJPO

    View Slide

  79. 3VMFΛಈ͔͢&YUFOTJPO
    ಛఆͷ3VMFʢ͓Αͼ֦ுʣݶఆ
    &YUFSOBM3FTPVSDF
    7FSJGJFS
    &YQFDUFE&YDFQUJPO
    ͱ͸ݴ͑ڧྗ
    ͦͷؾʹͳΕ͹ଞ΋Մೳ͔΋

    View Slide

  80. ϝϦοτ༏੎
    ଟ͘ͷσϝϦοτ͸ϦϦʔε͞Ε
    Ε͹ղܾ͞ΕΔ
    طଘͷ֦ுࢿ࢈͕͋ΔͳΒແཧʹ
    ৐Γ׵͑ͳͯ͘Α͍
    ֦ு೉౓͕Լ͕Δͷ͸େ͖͍

    View Slide

  81. +6OJUͰށ࿭͍ͦ͏
    ͳͱ͜Ζ

    View Slide

  82. ಈ͔ͳ͍ܥ
    !5FTUॻ͍ͯΔͷʹಈ͔ͳ͍
    +6OJUͷΛ࢖ͬͯΔ͔΋ʁ
    !/FTUFE͕ಈ͔ͳ͍
    TUBUJDʹͪ͠ΌͬͨΒμϝɻ

    View Slide

  83. ݟ͔ͭΒͳ͍ܥ
    !5FTU FYQFDUFE
    ͕ͳ͍
    ৽͍͠ΞαʔγϣϯͰɻ
    !5FTU UJNFPVU
    ͕ͳ͍
    ৽͍͠ΞαʔγϣϯͰɻ
    BTTFSU5IBU͕ߦํෆ໌
    IBNDSFTUೖΕΕ͹͍͍Αɻ

    View Slide

  84. ؀ڥܥ
    ϏϧυπʔϧपΓͰӠʑ
    ϦϦʔε͞ΕΕ͹͜ͳΕΔ͔ͱɻ
    *%&पΓͰӠʑ
    ϦϦʔε͞ΕΕ͹͜ͳΕΔ͔ͱɻ

    View Slide

  85. ௒ॏཁ
    ݴͬͯͨॻ͍ͯͨͷͱ
    ڍಈ͕ҧ͏
    ৘ใ͸όʔδϣϯΛ֬
    ೝ͠·͠ΐ͏ɻ

    View Slide

  86. ࡶײ

    View Slide

  87. +6OJU͸
    lୈࡾͷγεςϜzͬΆ͍

    View Slide

  88. ݱࡏ࡞͍ͬͯΔγεςϜͷςετ
    Λ+6OJUͰߦ͏ͷ͸ͳ͍ɻ
    ͢Ͱʹ+6OJUҎલͰ࡞͍ͬͯΔς
    ετΛஔ͖׵͑Δඞཁ͸ͳ͍ɻ
    ϦϦʔεޙʹ৽͘͠࡞ΔͳΒ+6OJU
    ͰΑͦ͞͏ɻ
    +%,ରԠ΋ͯ͠Δ͠ɻ

    View Slide

  89. ϑϨʔϜϫʔΫ΍ϥΠϒϥϦͷબ
    ఆʹؔΘΔػձ͸ଟ͘ͳ͍ɻ
    ܾ·ͬͨ΋ͷ͕͋ͬͯɺݕূ͞
    Εͨ΋ͷҎ֎͸࢖͑ͳ͍ͱ͜Ζ
    ͸݁ߏଟ͍ɻ
    ςετ༻ͷϥΠϒϥϦ౳͸·ͩνϟ
    Ϩϯδ͠΍͍͢ྖҬɻ
    खΛग़͠΍͍͢΋ͷʹͳͬͯΔ
    ͱ΋ࢥ͍·͢ɻ

    View Slide