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
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1 test 1 assert ?
TDDBC Tokyo 2017-09 でのLTスライドです。
https://tddbc.connpass.com/event/65484/
PoohSunny
September 30, 2017
More Decks by PoohSunny
See All by PoohSunny
ドレイファスモデルの紹介 / introduce Dreyfus model
poohsunny
1
1.7k
Make Work Visible in Agile2018 #LINE_DM
poohsunny
1
480
タウンワークをドライブさせるためになんちゃってアジャイルをやめた話 #devsumi #devsumiB / devsumi2018
poohsunny
30
47k
XUTPから学ぶ記述性の高いユニットテスト 〜俺たちを助けるユニットテストへ〜 / xUTP in #xpjug
poohsunny
4
5.5k
XCUITestする時のTIPs 〜あなたを助けるXCUITestへ〜
poohsunny
0
3.2k
コードに思いが伝わる
poohsunny
0
370
横浜タネマキでGebと握手! #yokohamagroovy
poohsunny
0
450
The "yummy" licenses.
poohsunny
0
250
ブラウザテストをサクサク自動化するためのGeb実践入門 #jjug_ccc
poohsunny
21
7.2k
Other Decks in Technology
See All in Technology
エンタープライズデータへ安全につなぐ Production-ready なエージェント設計 ― AI × MCP リファレンスアーキテクチャ ― #AIDevDay
cdataj
1
300
AWS環境のセキュリティ不安を解消した企業事例 ~よくある課題と対策を一挙公開~
asanoharuki
0
240
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
190
2026年のソフトウェア開発を考える(2026/07版) / Agentic Software Engineering 2026-07 Findy Edition
twada
PRO
31
21k
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
160
新たなDBアーキテクチャ「LTAP」にDeep Dive!!
inoutk
0
150
Amazon Bedrock Managed Knowledge BaseDive Deep
ren8k
0
240
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
540
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
0
300
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
360
AI驚き屋発見器
yama3133
1
380
害獣害虫を自動判別! ペストコントロール支援ビジネス成功のヒント【SORACOM Discovery 2026】
soracom
PRO
0
120
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
670
Documentation Writing (for coders)
carmenintech
77
5.4k
エンジニアに許された特別な時間の終わり
watany
108
250k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
380
Building Applications with DynamoDB
mza
96
7.1k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Producing Creativity
orderedlist
PRO
348
40k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
RailsConf 2023
tenderlove
30
1.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
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