Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
どうしようJUnit5
Search
irof
December 03, 2016
Programming
6.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
どうしようJUnit5
JJUG CCC 2016 Fall
irof
December 03, 2016
More Decks by irof
See All by irof
ふつうのFeature Flag実践入門
irof
8
5.3k
視座の上げ方
irof
1
180
アーキテクチャと考える迷子にならない開発者テスト
irof
10
4.5k
技術的負債の正体を知って向き合う
irof
0
1.2k
関ジャバと言う場
irof
0
440
型で語るカタ
irof
2
1.7k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
550
複数アプリケーションを育てていくための共通化戦略
irof
9
6.9k
SpringBootにおけるオブザーバビリティのなにか
irof
1
1.5k
Other Decks in Programming
See All in Programming
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
480
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
460
ジョジョの世界をXRで再現する
mofurune
0
130
Jetpack Compose Mechanisms
skydoves
2
520
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
120
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
720
AIに “答え“を書かせるのを やめてみた
___akari11
0
110
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.5k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
21
21k
phperだってパンチカードでコーディングしたい
o0h
PRO
0
230
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Odyssey Design
rkendrick25
PRO
2
860
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Balancing Empowerment & Direction
lara
6
1.3k
GraphQLとの向き合い方2022年版
quramy
50
15k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
510
WCS-LA-2024
lcolladotor
0
850
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
Product Roadmaps are Hard
iamctodd
55
13k
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 ͰΑͦ͞͏ɻ +%,ରԠͯ͠Δ͠ɻ
ϑϨʔϜϫʔΫϥΠϒϥϦͷબ ఆʹؔΘΔػձଟ͘ͳ͍ɻ ܾ·ͬͨͷ͕͋ͬͯɺݕূ͞ ΕͨͷҎ֎͑ͳ͍ͱ͜Ζ ݁ߏଟ͍ɻ ςετ༻ͷϥΠϒϥϦ·ͩνϟ Ϩϯδ͍͢͠ྖҬɻ खΛग़͍͢͠ͷʹͳͬͯΔ ͱࢥ͍·͢ɻ