Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
どうしようJUnit5
Search
irof
December 03, 2016
Programming
0
6.3k
どうしようJUnit5
JJUG CCC 2016 Fall
irof
December 03, 2016
Tweet
Share
More Decks by irof
See All by irof
役立つログに取り組もう
irof
33
11k
Javaのリリースモデル変更 その後
irof
0
89
プールにゆこう
irof
2
300
Javaマルチバージョンビルディング
irof
1
390
データ/データベースパターン
irof
0
180
勉強会で話すハードルを下げてみる
irof
0
370
Gatlingによる負荷テスト入門
irof
6
2.6k
これからのJavaのとっかかりを掴む
irof
0
11k
Listかもしれない
irof
2
540
Other Decks in Programming
See All in Programming
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
210
iOS開発におけるCopilot For XcodeとCode Completion / copilot for xcode
fuyan777
1
1.2k
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
230
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
6
1.3k
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
380
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
670
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
330
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
510
Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる / Findy Team Plus Award BestPractice and DPE Retrospective 2024
honyanya
0
130
HTML/CSS超絶浅い説明
yuki0329
0
160
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
860
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
270
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Code Reviewing Like a Champion
maltzj
521
39k
Music & Morning Musume
bryan
46
6.3k
Producing Creativity
orderedlist
PRO
343
39k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
GitHub's CSS Performance
jonrohan
1030
460k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Transcript
@irof Ͳ͏͠Α͏+6OJU 5 ++6($$$'BMM DDD@G
ηογϣϯ֓ཁ ϦϦʔεؒۙͷ+6OJUɻ +6OJUΛ༻͍ͯ͠Δํଟ͍͔ͱ ࢥ͍·͕͢ɺ࣍όʔδϣϯͷԻ͕ฉ ͖͑ͯ͜·ͨ͠ɻ ݱঢ়ҡ͔࣋Ҡߦ͔ͳͲɺʮͲ͏͠Α͏ʯ ͱࢥ͍ͬͯΔਓଟ͍Ͱ͠ΐ͏ɻࢲ ͦͷҰਓͰ͢ɻ ͦΜͳΘ͚ͰɺͲ͏͠Α͏͔ߟ͑Δࡐ ྉΛूΊͯͦ͏ͱࢥ͍·͢ɻ
͍͘Β͔ͷҙ +6OJU·ͩϦϦʔε͞Ε͍ͯ· ͤΜɻมΘΓ·͢ɻ ࣮Ͱ͍ͬͯ·ͤΜɻ ͭ·ΓໝηογϣϯͰ͢ɻ ଞͷ෦ʹߦ͜͏ɻ
͜ͷεϥΠυͰ ༻͍ͯ͠Δόʔδϣϯ +BWB@ +6OJU. (SBEMF +FOLJOT
ϩΰ
Ͳ͏͠Α͏ ͍·͙͢+6OJUΛ͏ʁ +6OJU͔Β+6OJUʹΓ͑Δʁ ৽͘͠+6OJU͏ͷʁ +6OJU͏࣌ʹࠔΔ͜ͱʁ
͑ͳΜͯͳ͍ͷͰ +6OJU . Λઆ໌͠·͢ ϝϦοτσϝϦοτͱ͔ ͕࣌ؒ͋Ε͜ͷล͠·͢ +6OJUͰށ͍ͦ͏ͳͱ͜Ζ +6OJU͔ΒͷΓ͑ੋඇ
+6OJUͷݱঢ়
. .͔͍ͪ͏ͪ .ͦͷ͏ͪ ("2༧ఆ +%,ʹ͋ΘͤΔײ͔͡ͳʁ
.͕Ͱ͢
+6OJUͱͷޓੑ
ͳ͍
ޓੑʹ͍ͭͯ ผͷϑϨʔϜϫʔΫͰ͢ ผͳͷͰޓͳΜͯ͋ΔΘ͚ ͳ͍Ͱ͢ ʮόʔδϣϯΞοϓͯͦ͠ͷ·· ͑Δʯ͋Γ·ͤΜ
ͳΜͰผͳͷʁ
ผͳͷͰڞଘͰ͖Δ BSUJGBDU*EHSPVQ*E͕ҧ͏ ύοέʔδҧ͏ JUnit 5 PSHKVOJUKVQJUFS JUnit 4 PSHKVOJU JUnit
3 KVOJUGSBNFXPSL
ڞଘʁ +6OJU +6OJU1MBUGPSN Ͱ+6OJUΛ ಈ࡞ͤ͞Δ +6OJU 3VOOFS Ͱ+6OJUͷςετ Λ࣮ߦ͢Δ +6OJUͷςετʹ+6OJUͷ3VMFΛ
ద༻͢Δ ʜʜͳͲ͕ՄೳʹͳΔ
ߏΛோΊͯΈΔ
+6OJU +6OJU1MBUGPSN +6OJU+VQJUFS +6OJU7JOUBHF
+6OJU1MBUGPSN KVOJUQMBUGPSN DPNNPOT KVOJUQMBUGPSN DPOTPMF KVOJUQMBUGPSN SVOOFS KVOJUQMBUGPSN HSBEMFQMVHJO KVOJUQMBUGPSN
MBVODIFS KVOJUQMBUGPSN FOHJOF KVOJUQMBUGPSN TVSFpSFQSPWJEFS
+6OJU+VQJUFS KVOJUKVQJUFSBQJ KVOJUKVQJUFS FOHJOF KVOJUQMBUGPSN DPNNPOT KVOJUQMBUGPSN FOHJOF KVOJUKVQJUFS NJHSBUJPOTVQQPSU
+6OJU7JOUBHF KVOJUWJOUBHF FOHJOF KVOJUQMBUGPSN FOHJOF KVOJUKVOJU
શମ KVOJUQMBUGPSN DPNNPOT KVOJUQMBUGPSNDPOTPMF KVOJUQMBUGPSNSVOOFS KVOJUQMBUGPSNHSBEMF QMVHJO KVOJUQMBUGPSNMBVODIFS KVOJUQMBUGPSNFOHJOF KVOJUQMBUGPSNTVSFpSF
QSPWJEFS KVOJUWJOUBHFFOHJOF KVOJUKVQJUFSBQJ KVOJUKVQJUFSFOHJOF KVOJUKVOJU KVOJUKVQJUFSNJHSBUJPO TVQQPSU
%FQFOEFODZ%JBHSBN .ͷ6TFS(VJEFͰՃ͞Εͨਤ
ͬͯΈΔ
+6OJUˠ+6OJU KVOJUKVOJU PSHKVOJUKVQJUFSKVOJUKVQJUFSBQJ. PSHKVOJUKVQJUFSKVOJUKVQJUFSFOHJOF. FOHJOF࣮ߦ࣌ ͚ͩͰΑ͍
ࢀߟϏϧυπʔϧͷઃఆ IUUQTHJUIVCDPNKVOJUUFBN KVOJUTBNQMFT
ςετίʔυ
ඞਢͷมߋ !5FTUͷύοέʔδ͕ҧ͏ PSHKVOJU5FTU PSHKVOJUKVQJUFSBQJ5FTU
ςετίʔυ PSHKVOJUKVQJUFSBQJ5FTU ݟͨಉ͡Ͱ͢
ҙͷมߋ ΫϥεQVCMJDͰͳͯ͘Α͍ ϝιουQVCMJDͰͳͯ͘Α͍ ৽͍͠Ξαʔγϣϯ"1*
ςετίʔυ QVCMJD͡Όͳͯ͘Α͍ QVCMJD͡Όͳͯ͘Α͍ PSHKVOJUKVQJUFSBQJ"TTFSUJPOT ݟͨಉ͡Ͱ͢
୯७ͳΒύοέʔδมߋͰࡁΉ
ϚΠάϨʔγϣϯʹ͍ͭͯ 6TFS(VJEFʹ݁ߏॻ͔ΕͯΔ ͨͩ͠ɺສೳͳखॱͰͳ͍
ςετͷ࣮ߦ
*OUFMMJ+*%&" *OUFMMJ+*%&"ͰରԠ͞Εͨ
.ʹͨ͠Β *OUFMMJ+*%&"͕.ΛͬͯΔ͔Βɻ KVOJUQMBUGPSNMBVODIFS.Λ͑0,
(SBEMF UFTU$MBTT UFTU KVOJU1MBUGPSN5FTU Ճ͞ΕΔλεΫ ແޮԽ͞ΕΔλεΫ ੍ޚՄೳ KVOJUQMBUGPSNHSBEMFQMVHJOͷग़൪
࣮ߦ݁Ռ͜Μͳײ͡ )5.-ͷSFQPSUࠓͷͱ͜Ζग़·ͤΜ
+FOLJOT (SBEMF +FOLJOTʹ+6OJU݁ՌͷऩूΛͤͨ݁͞Ռ
+FOLJOT (SBEMF.BWFO͕ಈ͔͘Βͳ͍ ݁ՌͷूܭͰ͖Δ 9.-ͷߏͦͷ·· !%JTQMBZ/BNFʹະରԠ ͞Ε͚ͨͩͩ͠
൪֎+6OJUͰಈ͖㽂 6TFS(VJEFࢀর
+6OJUͰ+6OJUΛಈ͔͢ !3VO8JUI +6OJU1MBUGPSNDMBTT
ཧ۶্࣮ࡍಈ͚͘Ͳ ʮڞଘՄೳʯͬͯݴͬͨͭɻ +6OJUͷ্Ͱ+6OJUΛಈ͔ͨ͠Γɺ +6OJUͷ্Ͱ+6OJUΛಈ͔ͨ͠ ΓɺΓ͗͢Δͱ͍͍ײ͡ʹࠞཚ Ͱ͖ͦ͏ɻ
ػೳͷհ
Ұ௨Γͷհͤͣɺ+6OJUͱͷ ൺֱΛத৺ʹ͠·͢ ػೳશମ6TFS(VJEFʹ͓ͤ ेͳใ͕͋Δ͚Ͳɺ ͦΜͳϘϦϡʔϜͳ͍Ͱ͢ɻ
+6OJUͱͷ"1*ൺֱ
"1*ൺֱͳͷͰ +6OJU+VQJUFSͷ KVOJUKVQJUFSBQJ +6OJU1MBUGPSN+6OJU7JOUBHFͷ ग़൪ͳ͍Ͱ͢
Ξϊςʔγϣϯ Ξαʔγϣϯ ֦ுϞσϧ ߏԽ ύϥϝʔλʔԽ Ξ ϊςʔ γϣϯ Ξαʔ γϣϯ
֦ுϞ σϧ ߏԽ ύϥ ϝʔ λʔԽ
Ξϊςʔγϣϯ Ξ ϊςʔ γϣϯ Ξαʔ γϣϯ ֦ுϞ σϧ ߏԽ ύϥ
ϝʔ λʔԽ
͍͍ͩͨͦͷ·· JUnit 4 JUnit 5 !5FTU !5FTU !#FGPSF !#FGPSF&BDI !"GUFS
!"GUFS&BDI !#FGPSF$MBTT !#FGPSF"MM !"GUFS$MBTT !"GUFS"MM !*HOPSF !%JTBCMFE
ͳ͘ͳͬͨ JUnit 4 ͤͭΊ͍ !3VO8JUI ςετͷ࣮ߦͷ ํΛม͑Δͭ !3VMF !$MBTT3VMF ςετ࣮ߦ࣌ʹ͋
Ε͜Ε͢Δͭ !'JY.FUIPE0SEFS ςετ࣮ߦॱΛݻ ఆ͢Δͭ ࣮ߦॱࢦఆ.ͰԿ͔ೖΔ༧ఆ
PSEFSJOHϥϕϧΛݟ͍ͯͩ͘͞
৽͍͠ͷ JUnit 5 ͤͭΊ͍ !/FTUFE &ODMPTFEʹࣅͨͷ !5BH $BUFHPSZʹࣅͨͷ !%JTQMBZ/BNF έʔε໊Λࢦఆ͢Δ
!5FTU'BDUPSZ ಈతςετͰ͏ !&YUFOE8JUI ֦ுͰ͏
Ξαʔγϣϯ Ξ ϊςʔ γϣϯ Ξαʔ γϣϯ ֦ுϞ σϧ ߏԽ ύϥ
ϝʔ λʔԽ
Ξαʔγϣϯ͚͍͢ ςετಈ ͔͢ࢠ ςετ ςετ͞ΕΔࢠ ڥ Ξαʔγϣϯ͜͜
ຯͳมߋ ഇࢭ BTTFSU5IBU Ճ -BNCEBΛ͏ͷ BTTFSU"MM BTTFSU5ISPXT BTTFSU5JNFPVU 1SFFNQUJWFMZ
ຯͳมߋ ഇࢭ BTTFSU5IBU Ճ -BNCEBΛ͏ͷ BTTFSU"MM BTTFSU5ISPXT BTTFSU5JNFPVU 1SFFNQUJWFMZ
Ҿ͖ଓ͖͍͍ͨ߹ )BNDSFTUΛ͍·͠ΐ͏
ຯͳมߋ ഇࢭ BTTFSU5IBU Ճ -BNCEBΛ͏ͷ BTTFSU"MM BTTFSU5ISPXT BTTFSU5JNFPVU 1SFFNQUJWFMZ
!5FTUͷʹ ॻ͍ͯͨͭ
"TTFSU+ಡΜͰ͍ͩ͘͞ WPM ൃച
֦ுϞσϧ Ξ ϊςʔ γϣϯ Ξαʔ γϣϯ ֦ுϞ σϧ ߏԽ ύϥ
ϝʔ λʔԽ
֦ுํ๏͕ҰຊԽ 3VOOFS &YUFOTJPO 3VMF
&YUFOTJPOͷ͍ํ &YUFOTJPOͷ࣮ΫϥεΛ࡞ͬͯʔ !&YUFOE8JUIͰࢦఆ͢Δ
&YUFOTJPOࡶײ ֦ுϙΠϯτʹԠͨ͡ΠϯλϑΣʔ εΛ࣮ͯ͠࡞Δ 3VMFΛγϯϓϧʹͨ͠ͷ ख৮Γྑ͍ 3VMFͷΑ͏ͳສೳײͳ͍
࣮ΛΈͯΈΑ͏ .PDLJUP&YUFOTJPO KVOJUUFBNʹΑΔ 4QSJOH&YUFOTJPO 4QSJOH'SBNFXPSLʹΑΔ TQSJOHUFTUʹೖΓͦ͏
͋·Γ৮Εͯͳ͍ͷͰ ৄ͍ͦ͠ͷ͏ͪɻ
ߏԽ Ξ ϊςʔ γϣϯ Ξαʔ γϣϯ ֦ுϞ σϧ ߏԽ ύϥ
ϝʔ λʔԽ
ςετίʔυͷߏԽ !&ODMPTFE !/FTUFE
&ODMPTFE
/FTUFE
&ODMPTFEWT/FTUFE /FTUFE͕֨ஈʹΑ͍ TUBUJDෆཁʢඇTUBUJDʣ !#FGPSF&BDIͱ͔ॻ͚Δ !5FTUͱฒͯॻ͚Δ
ύϥϝʔλʔԽ Ξ ϊςʔ γϣϯ Ξαʔ γϣϯ ֦ுϞ σϧ ߏԽ ύϥ
ϝʔ λʔԽ
ύϥϝʔλʔԽ 1BSBNFUFSJ[FE %ZOBNJD5FTU 5IFPSZ
%ZOBNJD5FTU
%ZOBNJD5FTU !5FTU'BDUPSZΛ͚ͭΔ %ZOBNJD5FTUͷΠϯελϯεΛؚΉ 4USFBN$PMMFDUJPOͳͲΛฦ͢ ແݶετϦʔϜॲཧͰ͖Δ
+6OJUʹͳ͍ػೳ ςετϨϙʔτ༻ͷ໊લ͕͚ͭΒ ΕΔ!%JTQMBZ/BNF ϝιουίϯετϥΫλ͕ҾΛ ड͚औΕΔ γφϦΦςετ͚ͷ֦ுʢະʣ
ϝϦοτσϝϦοτ
ϝϦοτ ίʔυ͕͘ͳΔ ֦ு͕Լ͕Δ ʢ৽ػೳʣ σϝϦοτ طଘͷ3VOOFS3VMF͕͑ͳ͍ *%&ͷରԠ
ࢀߟ3VMFΛಈ͔͢&YUFOTJPO
3VMFΛಈ͔͢&YUFOTJPO ಛఆͷ3VMFʢ͓Αͼ֦ுʣݶఆ &YUFSOBM3FTPVSDF 7FSJGJFS &YQFDUFE&YDFQUJPO ͱݴ͑ڧྗ ͦͷؾʹͳΕଞՄೳ͔
ϝϦοτ༏ ଟ͘ͷσϝϦοτϦϦʔε͞Ε Εղܾ͞ΕΔ طଘͷ֦ுࢿ࢈͕͋ΔͳΒແཧʹ Γ͑ͳͯ͘Α͍ ֦ு͕Լ͕Δͷେ͖͍
+6OJUͰށ͍ͦ͏ ͳͱ͜Ζ
ಈ͔ͳ͍ܥ !5FTUॻ͍ͯΔͷʹಈ͔ͳ͍ +6OJUͷΛͬͯΔ͔ʁ !/FTUFE͕ಈ͔ͳ͍ TUBUJDʹͪ͠ΌͬͨΒμϝɻ
ݟ͔ͭΒͳ͍ܥ !5FTU FYQFDUFE ͕ͳ͍ ৽͍͠ΞαʔγϣϯͰɻ !5FTU UJNFPVU ͕ͳ͍ ৽͍͠ΞαʔγϣϯͰɻ BTTFSU5IBU͕ߦํෆ໌
IBNDSFTUೖΕΕ͍͍Αɻ
ڥܥ ϏϧυπʔϧपΓͰӠʑ ϦϦʔε͞ΕΕ͜ͳΕΔ͔ͱɻ *%&पΓͰӠʑ ϦϦʔε͞ΕΕ͜ͳΕΔ͔ͱɻ
ॏཁ ݴͬͯͨॻ͍ͯͨͷͱ ڍಈ͕ҧ͏ ใόʔδϣϯΛ֬ ೝ͠·͠ΐ͏ɻ
ࡶײ
+6OJU lୈࡾͷγεςϜzͬΆ͍
ݱࡏ࡞͍ͬͯΔγεςϜͷςετ Λ+6OJUͰߦ͏ͷͳ͍ɻ ͢Ͱʹ+6OJUҎલͰ࡞͍ͬͯΔς ετΛஔ͖͑Δඞཁͳ͍ɻ ϦϦʔεޙʹ৽͘͠࡞ΔͳΒ+6OJU ͰΑͦ͞͏ɻ +%,ରԠͯ͠Δ͠ɻ
ϑϨʔϜϫʔΫϥΠϒϥϦͷબ ఆʹؔΘΔػձଟ͘ͳ͍ɻ ܾ·ͬͨͷ͕͋ͬͯɺݕূ͞ ΕͨͷҎ֎͑ͳ͍ͱ͜Ζ ݁ߏଟ͍ɻ ςετ༻ͷϥΠϒϥϦ·ͩνϟ Ϩϯδ͍͢͠ྖҬɻ खΛग़͍͢͠ͷʹͳͬͯΔ ͱࢥ͍·͢ɻ