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
2.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ユニットテストを書きやすくするためにテストスイートを拡張する / Extend test suite to make unit test easier to write
【非公式】PHPカンファレンス福岡2018前夜祭リジェクトコン #phpconfuk_rej
にて発表したときのスライドです。
tenkoma (Koji Tanaka)
June 16, 2018
More Decks by tenkoma (Koji Tanaka)
See All by tenkoma (Koji Tanaka)
PhpStormでコードを理解する技術 / How to use PhpStorm to understand the code
tenkoma_
0
3.7k
PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen
tenkoma_
0
4.4k
PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integrating PHPUnit with a PhpStorm
tenkoma_
1
690
CakeFest 2019について / About CakeFest 2019
tenkoma_
0
4.2k
BASE の PHP アプリ アップデートについて
tenkoma_
0
4.6k
CircleCI 2.0 で CakePHP3 アプリのビルド
tenkoma_
0
2.1k
GitLab CI + Review Apps で簡易レビュー環境
tenkoma_
4
3.1k
CakePHP プロジェクトにプルリクを送り続けた僕は
tenkoma_
0
660
Webpack勉強会 JavaScriptビルド編
tenkoma_
1
2.1k
Other Decks in Programming
See All in Programming
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
130
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
その節約、円になってますか?
isamumumu
1
650
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.5k
AIが無かった頃の素敵な出会いの話
codmoninc
1
340
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
180
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
110
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
760
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
300
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
160
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
620
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
930
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
30 Presentation Tips
portentint
PRO
1
360
We Have a Design System, Now What?
morganepeng
55
8.2k
Leo the Paperboy
mayatellez
8
2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
370
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Prompt Engineering for Job Search
mfonobong
0
390
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Building AI with AI
inesmontani
PRO
1
1.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Crafting Experiences
bethany
1
230
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ςετॻ͘ͷΛָʹͯ͠։ൃΛָ͘͠͠ ·͠ΐ͏