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
1 test 1 assert ?
Search
PoohSunny
September 30, 2017
Technology
0
380
1 test 1 assert ?
TDDBC Tokyo 2017-09 でのLTスライドです。
https://tddbc.connpass.com/event/65484/
PoohSunny
September 30, 2017
Tweet
Share
More Decks by PoohSunny
See All by PoohSunny
ドレイファスモデルの紹介 / introduce Dreyfus model
poohsunny
1
1.1k
Make Work Visible in Agile2018 #LINE_DM
poohsunny
1
400
タウンワークをドライブさせるためになんちゃってアジャイルをやめた話 #devsumi #devsumiB / devsumi2018
poohsunny
30
46k
XUTPから学ぶ記述性の高いユニットテスト 〜俺たちを助けるユニットテストへ〜 / xUTP in #xpjug
poohsunny
4
5.2k
XCUITestする時のTIPs 〜あなたを助けるXCUITestへ〜
poohsunny
0
3k
コードに思いが伝わる
poohsunny
0
270
横浜タネマキでGebと握手! #yokohamagroovy
poohsunny
0
390
The "yummy" licenses.
poohsunny
0
160
ブラウザテストをサクサク自動化するためのGeb実践入門 #jjug_ccc
poohsunny
21
6.9k
Other Decks in Technology
See All in Technology
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
210
AIエージェント入門
minorun365
PRO
32
18k
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
380
Share my, our lessons from the road to re:Invent
naospon
0
150
Охота на косуль у древних
ashapiro
0
110
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.2k
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
690
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
110
IAMのマニアックな話2025
nrinetcom
PRO
4
970
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
520
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.1k
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
610
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
67
11k
Music & Morning Musume
bryan
46
6.4k
Docker and Python
trallard
44
3.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
The Invisible Side of Design
smashingmag
299
50k
KATA
mclloyd
29
14k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Faster Mobile Websites
deanohume
306
31k
Bash Introduction
62gerente
611
210k
Agile that works and the tools we love
rasmusluckow
328
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Transcript
1 test 1 assert ? 1
ߴڮ ཅଠ(@PoohSunny) { role: "Engineer team leader", lang: ["Java", "Groovy",
"Swift"] } 2
3
ϖΞϓϩσϞ 4
1 test 1 assertion 5
xUTPͱͷग़ձ͍ 6
ޙ3 3 photo: https://www.flickr.com/photos/daverusso88/20860542330/in/photolist- xMnJsW-8H8jnW-8BDdLz-fS9XhN-e3qtWG-oaibHC-eRMCCx-q9Ftni-n7Lmvm-supyFV-gXyxGZ- fEKqSK-sqqxce-sfR8k1-q7N9Ta-dDw4Zq-9ML2MP-oa6sWm-J5F4zN-4vX6LP-nW3r1Q- rF4QJJ-8BWJj9-A1MjG7-sqqpKR-HgcdWN-7Dy6QC-s7M3Dn-w2RjN3-TZXibu-mMD2tR-o9TZi6- shS8mE-hWRzr-WJPkXw-xe6Rnv-DWz4Ra-yGju6j-fkfg3o-ghz6JD-wR4HYP-7xhvzK-rN2UEW- krfJu3-Duju1z-FSwQ8h-8yNSK2-4vXc2a-DaLuo5-zZyYuS 7
xUTPͱͷग़ձ͍(ཧ)4 4 ಈը: https://engineers.sg/video/unit-test-craftsmanship-agile-singapore- conference-2016--1168 εϥΠυ: http://singapore2016.xunitpatterns.com/ 8
γϯάϧΞαʔγϣϯ9 • ࿑ಇ࣌ؒܭࢉͷςετ // then assertEquals(720, result.getWorkTime()); • ٳܜ࣌ؒܭࢉͷςετ //
then List<Integer> breakTimeList = result.getBreakTimeList(); assertEquals(2, breakTimeList.size()); assertEquals(60, breakTimeList[0]); assertEquals(45, breakTimeList[1]); 9 http://xunitpatterns.com/Principles%20of%20Test%20Automation.html#Single Condition Test 9
1 test 1 assertϗ ϯτʁ 10
·ͱΊ͓͍ͯͨํ͕ Θ͔Γͦ͢͏ // then List<Integer> breakTimeList = result.getBreakTimeList(); assertEquals(2, breakTimeList.size());
assertEquals(60, breakTimeList[0]); assertEquals(45, breakTimeList[1]); 11
ಡΈ͍͢ܗʹ ϦϑΝΫλϦϯά • ྫ͑JUnit5 + AssertJΛར༻ // then List<Integer> breakTimeList
= result.getBreakTimeList(); assertThat(breakTimeList).hasSize(2).containsExactly(60, 45); 12
ΧελϜΞαʔγϣϯ10 • ϔϧύʔΛ࡞͠ɺΞαʔγϣϯͷ࣮ॲཧͦ ͪΒʹҠಈ 10 http://xunitpatterns.com/Custom%20Assertion.html 13
ϝιουຊޠԽख // then List<Integer> breakTimeList = result.getBreakTimeList(); ٳܜ2ճܭࢉ͞Εͯ(breakTimeList, _1ͭͷܭࢉ࣌ؒ(60), _2ͭͷܭࢉ࣌ؒ(45));
14
ϝϯςφϯεੑ͕٘ਜ਼ʹͳ Δʁ • ςετͷڞ௨ԽͬͯͲΕ΄Ͳॏཁʁ • ͜ΕʹΑͬͯͲͷ͘Β͍ಡΈ͕͢͞૿͢ʁ 15
ಡΈ͘͢ͳΒͳ͍Α͏ͳΒ ͠ಡΈ͘͢ͳΒͳ͍ͳΒɺγϯάϧΞαʔγ ϣϯਥʹͳΔͭΓͳ͍Α — Principle: Verify One Condition per Test
11 11 http://xunitpatterns.com/Principles%20of%20Test%20Automation.html#Single Condition Test ΑΓҙ༁ 16
Single Assertion ૉΒ͍͠ 17
Ͱόϥϯε͋Δ Αʂ 18
͓͠·͍ 19