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
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
310
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
170
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
160
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
260
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
860
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
230
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
240
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
140
Webとヘルスデータ
yukukotani
1
200
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
290
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
7
7.5k
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
280
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
930
Testing 201, or: Great Expectations
jmmastey
46
8.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠