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
Codeceptionでテストをしよう
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takashi Nojima
May 21, 2016
Technology
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Codeceptionでテストをしよう
PHPカンファレンス福岡2016 LT
http://php-tips.com/2016/05/21/phpconfuk2016-lt-codeception/
Takashi Nojima
May 21, 2016
More Decks by Takashi Nojima
See All by Takashi Nojima
Stripe決済対応 バリカートの紹介と本カートシステムでの Stripe連携の仕組み
nojimage
0
160
CakePHP3で時間を 扱いたかったお話 / Fukuoka.php 201904
nojimage
0
440
Dockerで作るPHP開発環境(入門編)
nojimage
3
1.1k
CakePHP3 Modelless Form
nojimage
3
3k
Other Decks in Technology
See All in Technology
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
0
140
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
6
7.2k
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
0
1k
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
300
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
250
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.1k
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.6k
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
120
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
240
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
160
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
770
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
My Coaching Mixtape
mlcsv
0
310
Speed Design
sergeychernyshev
33
2.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
The Cult of Friendly URLs
andyhume
79
7k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
How to Talk to Developers About Accessibility
jct
2
540
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Being A Developer After 40
akosma
91
590k
Transcript
Codeception! Ͱςετ͠Α͏ .BZ 1)1ΧϯϑΝϨϯεԬ
About Me ໊લɿౡོʢͷ͡·͔ͨ͠ʣ ॴଐɿΠϥεςΟοΫίϯαϧλϯπגࣜձࣾ w CMPHIUUQQIQUJQTDPN w 5XJUUFS!OPKJNBHF
͢͜ͱ w $PEFDFQUJPOͷ֓ཁ w σϞ w $FQUWT$FTU w ͓קΊϞδϡʔϧ
Codeception ͱ
Codeception ͱ wड͚ೖΕςετ "DDFQUBODF5FTU wػೳςετ 'VODUJPOBM5FTU w୯ମςετ 6OJU5FTU
Λ·ͱΊͯॲཧͰ͖ΔςεςΟϯάϑϨʔϜϫʔΫ
Codeception ͱ w ެࣜαΠτ IUUQDPEFDFQUJPODPN w ຊޠυΩϡϝϯτ IUUQQJDDBHMJBOJHJUIVCJP$PEFDFQUJPOEPDTKB@+1
Codeception ͷ͍͍ͱ͜Ζ 8FC%SJWFSʹΑΔ+BWB4DSJQUͷڍಈΛؚΊͨςετΛ 1)1Ͱॻ͚Δ ‣ ςετࣦഊ࣌ʹɺ)5.-εΫϦʔϯγϣοτΛͯ͘͠ΕΔ ‣ 8FC%SJWFSʹ4FMFOJVNͷଞɺ1IBOUPN+4 8FC,JUϕʔεͷϔο υϨεϒϥβ
ར༻Մೳ
‣ -BSBWFM -VNFO ‣ 1IBMDPO ‣ 4JMFY ‣ 4ZNGPOZ ‣
:JJ ‣ ;FOE'SBNFXPSL ˞$BLF1)1ผ్Ϟδϡʔϧ ՃͰରԠՄೳ ֤छϑϨʔϜϫʔΫΛඪ४αϙʔτ Codeception ͷ͍͍ͱ͜Ζ
Codeception ͷ͍͍ͱ͜Ζ ‣ 3&45"1*ͷςετ༻Ϟδϡʔϧ͕͋Δ ‣ +40/ͰΛฦ͢"1*ͷςετ͕؆୯ʹॻ͚Δ
ςετ Λॻ͍ͯΈΔ
͜Μͳͷ w πΠολʔͰʮQIQDPOGVLʯΛݕࡧ w ݕࡧ݁Ռʹʮ1)1ΧϯϑΝϨϯε࠷ߴʂʯ͕ ؚ·Ε͍ͯΕ0,
ςετίʔυ <?php ! $I = new AcceptanceTester($scenario); $I->wantTo('πΠολʔͰ #phpconfuk ΛݕࡧͰ͖Δ');
! $I->amOnPage('/'); $I->comment('ݕࡧϑΟʔϧυΛ։͍ͯೖྗ'); $I->click('ݕࡧ'); ! $I->waitForElementVisible('#search-query'); $I->fillField('#search-query', '#phpconfuk'); $I->click('.StreamsTopBar-searchButton'); $I->wait(3); ! $I->expect('ݕࡧϖʔδ͕։͍͍ͯΔ'); $I->seeCurrentUrlMatches('~^/search~'); $I->seeInTitle('#phpconfuk'); ! $I->expect('݁Ռʹ"1)1ΧϯϑΝϨϯε࠷ߴʂ"ΛؚΜͰ͍Δ'); $I->see('PHPΧϯϑΝϨϯε࠷ߴʂ', '#timeline');
σϞ
Cept vs Cest
Cept <?php ! $I = new AcceptanceTester($scenario); $I->wantTo('log in as
regular user'); ! $I->amOnPage('/login'); $I->fillField('Username','davert'); $I->fillField('Password','qwerty'); $I->click('Login'); ! $I->see('Hello, davert');
Cest <?php ! class LoginCest { ! public function _before(AcceptanceTester
$I) { } ! public function _after(AcceptanceTester $I) { } ! public function tryToTest(AcceptanceTester $I) { $I->wantTo('log in as regular user'); ! $I->amOnPage('/login'); $I->fillField('Username', 'davert'); $I->fillField('Password', 'qwerty'); $I->click('Login'); ! $I->see('Hello, davert'); } }
Cept vs Cest $FTUͳΒ ‣ @CFGPSF @BGUFS ϝιουͰڞ௨ͷલॲཧʗ ޙॲཧ͕هड़Մೳ ‣
ΞϊςʔγϣϯͰςετέʔεͷάϧʔϓԽґ ଘؔΛهड़Մೳ
͓קΊϞδϡʔϧ
͓קΊϞδϡʔϧ w TJUFQIBOUPNBO w KBLPDIQIBOUPNKTJOTUBMMFS w DBQUCBSJUPOFNBJMDBUDIFSDPEFDFQUJPONPEVMF w NBJMDBUDIFSμϛʔ4.51αʔόΛ্ཱͪ͛ΕΔHFN
ϚϧνόΠτͷରԠ ෦ͰTVCTUSͷϚϧνόΠτະରԠͷؔΛ ༻͍ͯ͠Δ ‣ ςετͷϝιου໊ϝοηʔδʹϚϧνόΠ τจࣈΛ༻ͨ͠߹දࣔಈ࡞่͕ΕΔ
IDEͷରԠ w /FU#FBOT͔ΒରԠ w 1)14UPSNϓϥάΠϯͰରԠ w IUUQTHJUIVCDPNUJHFSTFPDPEFDFQUJPOQIQTUPSN DPNNBOEMJOFUPPM
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠