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
ユニットテストを書きやすくするためにテストスイートを拡張する / Extend test su...
Search
tenkoma (Koji Tanaka)
June 16, 2018
Programming
0
2.6k
ユニットテストを書きやすくするためにテストスイートを拡張する / Extend test suite to make unit test easier to write
【非公式】PHPカンファレンス福岡2018前夜祭リジェクトコン #phpconfuk_rej
にて発表したときのスライドです。
tenkoma (Koji Tanaka)
June 16, 2018
Tweet
Share
More Decks by tenkoma (Koji Tanaka)
See All by tenkoma (Koji Tanaka)
PhpStormでコードを理解する技術 / How to use PhpStorm to understand the code
tenkoma_
0
3.2k
PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen
tenkoma_
0
3.9k
PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integrating PHPUnit with a PhpStorm
tenkoma_
1
600
CakeFest 2019について / About CakeFest 2019
tenkoma_
0
3.9k
BASE の PHP アプリ アップデートについて
tenkoma_
0
4.4k
CircleCI 2.0 で CakePHP3 アプリのビルド
tenkoma_
0
1.9k
GitLab CI + Review Apps で簡易レビュー環境
tenkoma_
4
3k
CakePHP プロジェクトにプルリクを送り続けた僕は
tenkoma_
0
630
Webpack勉強会 JavaScriptビルド編
tenkoma_
1
1.9k
Other Decks in Programming
See All in Programming
CSC509 Lecture 09
javiergs
PRO
0
140
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
1.3k
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
100
Less waste, more joy, and a lot more green: How Quarkus makes Java better
hollycummins
0
100
Jakarta EE meets AI
ivargrimstad
0
140
Arm移行タイムアタック
qnighy
0
320
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.1k
初めてDefinitelyTypedにPRを出した話
syumai
0
400
Featured
See All Featured
Statistics for Hackers
jakevdp
796
220k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Music & Morning Musume
bryan
46
6.2k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Facilitating Awesome Meetings
lara
50
6.1k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
A designer walks into a library…
pauljervisheath
203
24k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
ϢχοτςετΛॻ͖͘͢ ͢ΔͨΊʹςετεΠʔτΛ ֦ு͢Δ ాத࣏!UFOLPNB 1)1ΧϯϑΝϨϯεԬඇެࣜલࡇ ϦδΣΫτίϯ QIQDPOGVL@SFK
ࣗݾհ wాத࣏ w!UFOLPNB 5XJUUFS (JU)VC )BUFOBʜ wࣛࣇౡˠԬˠਆಸˠ౦ژ w#"4&גࣜձࣾ#BDL&OE&OHJOFFS
࣍ w#"4&ͷ1)1ΞϓϦέʔγϣϯʹ͍ͭͯ w1)1ΞϓϦέʔγϣϯ͚ͷςετεΠʔτΛ ΧελϚΠζ͢Δ wςετεΠʔτͷػೳΛςετ͢Δ wςετ༻1)1֦ுͷίʔυΛิͰ͖ΔΑ͏ʹ ͢Δ
·͓͖͑ w ݄ʹೖࣾͨ͠ͱ͖ɺ!LVOJU͞Μͱ͍͏ ϓϩάϥϚ͕ۀࢧԉͰۈ͞Ε͍ͯͨ w 1)1ϑϨʔϜϫʔΫόʔδϣϯΞοϓΛඪʹ ਾ͑ͯ%PDLFS։ൃڥͷඋϢχοτςετɺ $*ͷηοτΞοϓ࡞ۀΛ͞Ε͍ͯͨɻ w ҰॹʹϓϩμΫτͷ1)1Ξοϓσʔτ࡞ۀΛ͠ͳ͕
ΒςετεΠʔτࣗମͷػೳ֦ுΛͬͨͷͰհ
#"4&Ͱͷ 1)1$BLF1)1 ଟ͘ͷϩʔϧͰ1)1ͱ$BLF1)1Λ༻ w ωοτγϣοϓ࡞αʔϏε#"4& w γϣοϐϯάΞϓϦʮ#"4&ʯ༻ͷ"1* w ཧը໘ɾόονॲཧʜ
#"4&ͷHJUϦϙδτϦ γϣοϓ࡞ ϞόΠϧΞϓϦ"1* όοΫΦϑΟε ࣗ࡞ϓϥάΠϯ ࣗ࡞ϓϥάΠϯY $BLF1)1ΞϓϦέʔγϣϯ $BLF1)1ϓϥάΠϯ ʜ ࣗ࡞ϓϥάΠϯ
1)1 $BLF1)1 όʔδϣϯΞοϓϓϩδΣΫτ w1)1ˠ w$BLF1)1ʙˠ w݄ʹྃ
IUUQEFWCMPHUIFCBTFJOFOUSZ
#"4&ͷHJUϦϙδτϦ γϣοϓ࡞ ϞόΠϧΞϓϦ"1* όοΫΦϑΟε $BLF1)1ΞϓϦέʔγϣϯ $BLF1)1ϓϥάΠϯ ςετεΠʔτ ϓϥάΠϯ ࣗ࡞ϓϥάΠϯ ࣗ࡞ϓϥάΠϯY
ʜ ࣗ࡞ϓϥάΠϯ
ςετεΠʔτϓϥάΠϯ w ϑΟΫενϟʔͷ֦ுɺάϩʔόϧมཧͳͲͷػೳ ͕͋ͬͨ w ΞϓϦέʔγϣϯͷํෆ͍ͯͨ͠$*ઃఆςετ͕ ॆ࣮ͭͭ͋ͬͨ͠ w ͨͩ͠ςετεΠʔτϓϥάΠϯࣗମʹςετ͕ͳ͔ͬ ͨ
w ϢχοτςετΛָʹ͢ΔͨΊʹػೳ֦ுͨ͘͠ͳͬͨ
BTTFSU4BNFͰྻͷEJ⒎ Λग़ྗͰ͖ΔΑ͏ʹ͢Δ
BTTFSU4BNF w $BLF1)1·Ͱྻࠈ ϥϒͳϑϨʔϜϫʔΫ w ڊେͳྻΛΞαʔγϣϯࣦ ഊ͢ΔͱɺͲ͜ʹ͕ࠩ͋Δͷ ͔Θ͔ΓͮΒ͍ w ݁ՌɺΉΛ͑ͣ
BTTFSU&RVBMTʹͳͬͨΓɺ ྻͷΩʔຖʹΞαʔγϣϯ ͨ͠Γ͍ͯͨ͠
ߟ͑ͨ wBTTFSU4BNFͰBTTFSU&RVBMTΈ͍ͨ ʹEJ⒎ग़ͯ͠΄͍͠ w࠷৽൛ͩͱվળ͞ΕͯͨΓ͠ͳ͍͔ͳʁ
IUUQTHJUIVCDPNTFCBTUJBOCFSHNBOOQIQVOJUQVMM
͜Ε͍͍ͨʂ w͔͜͠͠Ε͕ಋೖ͞Εͨͷ1)16OJUʜ w$BLF1)1ΞϓϦͰY·Ͱ͔͑͠ͳ͍ wҠ২͢Δͧʂ
Ҡ২Ͱ͖ͨ
None
֦ுBTTFSU4BNF·ͱΊ wEJ⒎ͰΞαʔγϣϯࣦഊՕॴ͕ҰͰΘ͔Δ wͷᐆດ͞Λڐ༰͠ͳ͍ b` w1)16OJUYͰ͑Δ☺ w࣮ޙެ։͠·͢
ςετεΠʔτͷςε τΛॻ͘
ςετεΠʔτͷςετΛॻ͘ wBTTFSU4BNFΛ࣮͢Δલʹطଘͷ ػೳΛςετͨ͘͠ͳͬͨ wςετεΠʔτͬͯͲ͏ͬͯςε τ͢Δͷ
ςετޙʹ$POpHVSFͰཧ͍ͯ͠Δ ઃఆ͕ݩ௨ΓʹͳΔ͜ͱΛςετ͍ͨ͠
ςετεΠʔτͬͯͲ͏ͬͯς ετ͢Δͷ w ͜ͷTFU6Q UFBS%PXOͷهड़Λςετ͍ͨ͠ w $BLF1)1ຊମͷίʔυΛಡΜͩ w 5FTU4VJUFͷςετίʔυ͕͋ͬͨ w
IUUQTHJUIVCDPNDBLFQIQDBLFQIQUSFFYMJC$BLF5FTU$BTF5FTU4VJUF
ςετεΠʔτͬͯͲ͏ͬͯς ετ͢Δͷ $BLF5FTU$BTF #BTF5FTU$BTF ςετ͍ͨ͠Ϋϥε #BTF5FTU$BTF5FTU ʁ ˢ$POpHVSFΛॻ͖͑Δॲཧ͕ͳ͍ ܧঝ
ςετεΠʔτͬͯͲ͏ͬͯς ετ͢Δͷ $BLF5FTU$BTF #BTF5FTU$BTF ςετ͍ͨ͠Ϋϥε #BTF5FTU$BTF5FTU %VNNZ5FTU ܧঝ ܧঝ SVO
w ઃఆΛॻ͖ࠐΜͰͦͷΛΞαʔγϣϯ w SVO ࣮ߦ͢ΔલʹઃఆΛॻ͖ࠐΉ w ࣮ߦޙʹݩʹΔ͜ͱΛΞαʔγϣϯ %VNNZ5FTU #BTF5FTU$BTF5FTU
ԾͷςετέʔεΛ࡞ͬͯ ৼΔ͍ΛςετͰ͖ͨ
ςετ༻1)1֦ுͷίʔ υΛิͰ͖ΔΑ͏ʹ͢Δ
1IQ4UPSN͕ ิͯ͘͠Εͳ͍ίʔυ w5JNFDPQ wSVOLJU wςετ࣌ʹ͔͠Θͳ͍ w1IQ4UPSNͷิ༻ϑΝΠϧʹೖͬͯͳ͍ w IUUQTHJUIVCDPN+FU#SBJOTQIQTUPSNTUVCT wิͰ͖ͳ͍ɺܯࠂग़ΔˠετϨε
ߟ͑ͨ w୭͔ิ༻ͷϑΝΠϧ࡞ͬͯΔํ ͍ͳ͍͔ͳʁˠݟ͔ͭΒͳ͍ w࡞Ζ͏
IUUQTHJUIVCDPNUFOLPNBQIQTUVCTNJHIUZNBHJD
͜Μͳײ͡
QIQTUVCTNJHIUZNBHJD wSVOLJU UJNFDPQ VPQ[༻ ελϒϑΝΠϧ
1IQ4UPSNઃఆ
ଞʹ wςετεΠʔτϓϥάΠϯ$*Ͱςετ w1)1 Ͱ·ͱΊͯςετ࣮ߦ wϦϑϨΫγϣϯΛͬͯQSJWBUFͳϝϯό ΛಡΈॻ͖͢Δϝιου࣮
·ͱΊ wςετέʔεΛΧελϚΠζͯ͠ςετΛ ָʹ wςετεΠʔτʹςετΛ͔͍ͯΈͨ w5JNFDPQΫϥεͱ͔ิͰ͖ΔΑ͏ʹ wςετॻ͘ͷΛָʹͯ͠։ൃΛָ͘͠͠ ·͠ΐ͏