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
Atomic Design とテストの○○な話
Search
takf
July 21, 2022
Programming
2
1.8k
Atomic Design とテストの○○な話
2022.07.20 開発×テスト LT会 - vol.3 #devtestlt
takf
July 21, 2022
Tweet
Share
More Decks by takf
See All by takf
Denoに入門していきなりAleph.jsを触ってみた
takfjp
0
500
Node.jsのアップグレードで気をつけたこと
takfjp
1
2.6k
FARM スタックに触れてみる
takfjp
0
1.5k
React Testing Library の Query について整理してみた
takfjp
0
480
React.js 消えるライフサイクルメソッドについて
takfjp
0
130
Laravel 初めての業務で遭遇したハマりポイント×2
takfjp
2
3.1k
React で Stateless Functional Component の書き方を盛大に間違えていた話
takfjp
0
420
職歴1年目のフロントエンドエンジニアが インプットとアウトプットに苦しんだ話
takfjp
0
320
meguro.es.pdf
takfjp
0
120
Other Decks in Programming
See All in Programming
CSC509 Lecture 05
javiergs
PRO
0
290
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
150
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
920
クラシルを支える技術と組織
rakutek
0
190
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
390
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
180
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.5k
CSC305 Lecture 01
javiergs
PRO
1
400
CSC305 Lecture 03
javiergs
PRO
0
230
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
580
ポスターセッション: 「まっすぐ行って、右!」って言ってラズパイカーを動かしたい 〜生成AI × Raspberry Pi Pico × Gradioの試作メモ〜
komofr
0
950
Advance Your Career with Open Source
ivargrimstad
0
330
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
How to train your dragon (web standard)
notwaldorf
96
6.3k
Building Applications with DynamoDB
mza
96
6.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
For a Future-Friendly Web
brad_frost
180
9.9k
Become a Pro
speakerdeck
PRO
29
5.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Transcript
Atomic Design とテストの ◦◦ な話 2022.07.20 開発× テスト LT 会
- vol.3 #devtestlt @takfjp
自己紹介 Takeru Furuichi (@takfjp) コネヒト株式会社 所属 「ママリ」という出産・育児領域のサービスを開発・運営してい ます フロント: React,
TypeScript, jest + testing-library バックエンド: CakePHP
None
みなさんコンポーネントのテスト 書いてますか?
Component の分け方悩みますよね〜
Atomic Design Web デザイナー Brad Frost 氏が2013 年に提案したデザインシステ ム
Atomic Design UI をパーツ単位で設計していく Atom > Molecules > Organisms >
Templates > Pages
弊社での取り組み事例 Atom > Molecules > Organisms に対して必ずテストを書く (Templates は使わない) コンポーネント以外のAPI
通信、カスタムフック、汎用ロジックに はテストを書く テストのカバレッジには Codecov を使う https://about.codecov.io/ Component を追加して、前回コミットよりもカバレッジが下がっ ている (= 追加されたコンポーネントにテストが書かれていない or 不十分である) 時にCI 上でエラーを通知する 不十分な場所には reviewdog が指摘コメントをつけてくれる
None
Pages のテストをどうする問題 基本的に、Organisms 以下のコンポーネントの組み合わせでできて いるという認識なのでテストは追加しない Codecov でも Pages はカバレッジの対象外にしている Pages
独自のロジックが出てくるとややこしくなる
逆に考えてみる話 Pages にテストを書かない -> テストが必要となるロジックを Pages に盛り込まない カスタムフック、汎用ロジックとして分離させておく -> 再利用可能
な形に保つ
Pages のつらみな話 後から共通となるロジックが見つかったり、分離させようとすると テストの追加を必要とする ロジックを分離した後、後付けでテストを書こうとすると意外に難 しかったり、うまくテストコードが機能しなかったりする
Atomic Design とコンポーネントテス トの教訓 Molucules 以下のテストを充実させてカバレッジを担保する Pages に結合する時ラクができるようにするため Pages にロジックを持たせず、共通化したり分離して薄く保つ
Pages の動作にはエンジニアがユーザ目線で QA を行う(QA への意 識を持つ)
もしそれでもつらくなったら 案として: Atomic Design を脱してコンポーネント構成を見直してみる テストをペアプロで作っていく メンバ全員のテストへの解像度を上げるにはかなり有効 jest 以外に E2E
テストを組み込んでテスト自体の堅牢性をあげる
We're Hiring! カジュアル面談やってます! https://connehito.com/recruit/
Thank you!
None