Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
bitbank, Inc. Tokyo, Japan
PDF, PPTX
1,291 views
アプリケーション開発目線から考える テストの書き方について
bitbank LT Night #3 Angularの資料
Engineering
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 35
2
/ 35
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
21
/ 35
22
/ 35
23
/ 35
24
/ 35
25
/ 35
26
/ 35
27
/ 35
28
/ 35
29
/ 35
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
35
/ 35
More Related Content
PDF
UXを向上させる サイト高速化テクニック
by
Shohei Tai
PPTX
Agile Japan2016 Kanban
by
Atsushi Suzuki
PPTX
5分で詰め込む フロントエンド最適化
by
Shohei Tai
PPTX
JPUG の中国支部長変わったってよ #mysqlbeginner
by
Ikki Takahashi
PDF
実践リーダブルコード - 課題の実装の進め方
by
Kouhei Sutou
PPTX
テスト実行速度を改善してお金をかけずに開発スピードを爆速にする
by
77web
PPTX
ジャストシステムのDevOps実例 今後の取り組み
by
JustSystems Corporation
PDF
Mu seminor2014 00
by
sejs-ej
UXを向上させる サイト高速化テクニック
by
Shohei Tai
Agile Japan2016 Kanban
by
Atsushi Suzuki
5分で詰め込む フロントエンド最適化
by
Shohei Tai
JPUG の中国支部長変わったってよ #mysqlbeginner
by
Ikki Takahashi
実践リーダブルコード - 課題の実装の進め方
by
Kouhei Sutou
テスト実行速度を改善してお金をかけずに開発スピードを爆速にする
by
77web
ジャストシステムのDevOps実例 今後の取り組み
by
JustSystems Corporation
Mu seminor2014 00
by
sejs-ej
Similar to アプリケーション開発目線から考える テストの書き方について
PDF
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
PDF
java-ja TDD 2nd
by
Takuto Wada
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
by
Toshiyuki Hirata
PDF
Kotest を使って 快適にテストを書こう - KotlinFest 2024
by
Hirotaka Kawata
PDF
ぼくのかんがえた iOSテスト戦略
by
Naoki Umehara
PDF
SeasarCon 2009 White TDD
by
Takuto Wada
PDF
プロキシーを使ってテストを楽にする
by
Shunji Konishi
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
java-ja TDD 2nd
by
Takuto Wada
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
by
Toshiyuki Hirata
Kotest を使って 快適にテストを書こう - KotlinFest 2024
by
Hirotaka Kawata
ぼくのかんがえた iOSテスト戦略
by
Naoki Umehara
SeasarCon 2009 White TDD
by
Takuto Wada
プロキシーを使ってテストを楽にする
by
Shunji Konishi
More from bitbank, Inc. Tokyo, Japan
PDF
インフラチームの歴史とこれから
by
bitbank, Inc. Tokyo, Japan
PDF
ビットバンクのデプロイ戦略について
by
bitbank, Inc. Tokyo, Japan
PDF
ビットバンク流 アジャイル開発の紹介.pdf
by
bitbank, Inc. Tokyo, Japan
PDF
ビットバンクで求められるプロジェクトマネジメント
by
bitbank, Inc. Tokyo, Japan
PDF
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
by
bitbank, Inc. Tokyo, Japan
PDF
ビットバンクのマッチングエンジン.pdf
by
bitbank, Inc. Tokyo, Japan
PDF
Lightning Network, Swap, Nloop
by
bitbank, Inc. Tokyo, Japan
PDF
ビットバンクにおける少人数で支えるインフラチームの戦略
by
bitbank, Inc. Tokyo, Japan
PDF
bitbank Corporate Information
by
bitbank, Inc. Tokyo, Japan
PDF
ng build --prod & Continuous Delivery
by
bitbank, Inc. Tokyo, Japan
PDF
マーブル図で怖くないRxJS
by
bitbank, Inc. Tokyo, Japan
PDF
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
by
bitbank, Inc. Tokyo, Japan
PDF
中規模Angularアプリケーションの再設計
by
bitbank, Inc. Tokyo, Japan
PDF
仮想通貨取引所 bitbank の IaC の導入と実践
by
bitbank, Inc. Tokyo, Japan
PDF
Introduction of bitbank frontend development environment
by
bitbank, Inc. Tokyo, Japan
PDF
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
by
bitbank, Inc. Tokyo, Japan
PDF
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
by
bitbank, Inc. Tokyo, Japan
PPTX
Ethereumのシャーディング概論
by
bitbank, Inc. Tokyo, Japan
PDF
Daocasinoにおけるstate channel実装
by
bitbank, Inc. Tokyo, Japan
PDF
TypeScriptでライトニングネットワークを使ってみよう
by
bitbank, Inc. Tokyo, Japan
インフラチームの歴史とこれから
by
bitbank, Inc. Tokyo, Japan
ビットバンクのデプロイ戦略について
by
bitbank, Inc. Tokyo, Japan
ビットバンク流 アジャイル開発の紹介.pdf
by
bitbank, Inc. Tokyo, Japan
ビットバンクで求められるプロジェクトマネジメント
by
bitbank, Inc. Tokyo, Japan
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
by
bitbank, Inc. Tokyo, Japan
ビットバンクのマッチングエンジン.pdf
by
bitbank, Inc. Tokyo, Japan
Lightning Network, Swap, Nloop
by
bitbank, Inc. Tokyo, Japan
ビットバンクにおける少人数で支えるインフラチームの戦略
by
bitbank, Inc. Tokyo, Japan
bitbank Corporate Information
by
bitbank, Inc. Tokyo, Japan
ng build --prod & Continuous Delivery
by
bitbank, Inc. Tokyo, Japan
マーブル図で怖くないRxJS
by
bitbank, Inc. Tokyo, Japan
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
by
bitbank, Inc. Tokyo, Japan
中規模Angularアプリケーションの再設計
by
bitbank, Inc. Tokyo, Japan
仮想通貨取引所 bitbank の IaC の導入と実践
by
bitbank, Inc. Tokyo, Japan
Introduction of bitbank frontend development environment
by
bitbank, Inc. Tokyo, Japan
DeveloperSuccess として何を届けられるか、様々な分野を経た先として何ができるか
by
bitbank, Inc. Tokyo, Japan
ビットコインウォレットで手軽にパスワードレス認証が可能なbitidについての紹介
by
bitbank, Inc. Tokyo, Japan
Ethereumのシャーディング概論
by
bitbank, Inc. Tokyo, Japan
Daocasinoにおけるstate channel実装
by
bitbank, Inc. Tokyo, Japan
TypeScriptでライトニングネットワークを使ってみよう
by
bitbank, Inc. Tokyo, Japan
アプリケーション開発目線から考える テストの書き方について
1.
1 アプリケーション開発目線から考える テストの書き方について
2.
2 @kou
3.
3 今日話すこと ● テストのメンテナンスが負担にならないようにするには ? ●
サンプルコードでいくつかのテストの書き方の紹介
4.
4 テストのメンテナンスが負担にならないようにするには? そもそもなぜ負担になってしまうのか ?
5.
5 テストのメンテナンスが負担にならないようにするには? そもそもなぜ負担になってしまうのか ? テストを書くのが楽しくないから
6.
6 テストのメンテナンスが負担にならないようにするには? そもそもなぜ負担になってしまうのか ? テストを書くのが楽しくないから ● Karmaが遅い ●
DIの設定がめんどくさい
7.
7 テストのメンテナンスが負担にならないようにするには? そもそもなぜ負担になってしまうのか ? テストを書くのが楽しくないから ● Karmaが遅い ●
DIの設定がめんどくさい この辺が解消されれば 楽しくなるはず!
8.
8 Jestを使おう ● ブラウザを立ち上げる必要がないので、 Karmaよりも圧倒的に速い ●
後述するSnapshotテストが強力で、テスト工数がだいぶ低くなる ● Jasmineよりも分かりやすいMock機能がある ● IDEの親和性も高い
9.
9 Jestを使ったテストの書き方を紹介 ● Component Template
テスト ● Component @Output テスト ● テスト時のDIのモック設定 ● Http/Observableのテスト
10.
10 Component Template テスト ●
プロパティがHTMLとして正しくレンダリングされているかを確認したい ● プロパティ一箇所ごとにテストを書くのは大変で、テストも腐りやすい ● Jest Snapshotでテストをしよう
11.
11
12.
12 class名が設定されること をテストしたい
13.
13 class名が設定されること をテストしたい レンダリング内容でファイルが 生成され、そのファイルとの比較 テストが行われる
14.
14 class名が設定されること をテストしたい
15.
15 class名が正しく設定されることを確認 class名が設定されること をテストしたい
16.
16 Component @Output テスト ●
ユーザーのクリックなどの処理で EventEmitterがemitされることを確認した い ● Observableとしてテストをするのは手数が多く面倒くさい ● JestのspyOnを使用してemitが呼ばれるところまでをテストをする
17.
17
18.
18 methodのコールで このemit が呼ばれること をテストしたい
19.
19 methodのコールで このemit が呼ばれること をテストしたい EventEmitterの emit
を spyする
20.
20 methodのコールで このemit が呼ばれること をテストしたい EventEmitterの emit
を spyする emitを発火させるmethodをコールする
21.
21 methodのコールで このemit が呼ばれること をテストしたい EventEmitterの emit
を spyする emitを発火させるmethodをコールする 意図通りにemitが呼ばれることを確認
22.
22 テスト時のDIのモック設定 ● DIするものが増えるとテストを書くモチベーションが下がってしまう ● 使い捨てで、すぐに準備できるように
DIを上手く解決したい ● DIするモックについては再利用を考えず、それぞれのファイル作成する ● Provider の useValue と jest.fn を使う
23.
23
24.
24 これらのdependencyを解 決したい
25.
25 これらのdependencyを解 決したい providersにはuseValue を使用し、 必要なmethodなどを jest.fn
で用意する
26.
26 これらのdependencyを解 決したい providersにはuseValue を使用し、 必要なmethodなどを jest.fn
で用意する Serviceの DI が解決されてnew できる
27.
27 Http/Observableのテスト ● Httpのリクエスト結果を利用した処理などをテストしたい ● HttpClientTestingModuleを使うと煩雑な設定が多くなり、 テストを書くのが億劫になってしまう ●
HttpClientの get をモック化して、コールされた内容をテスト 戻り値には jest.fn を使用して、必要なObservableを設定する
28.
28
29.
29 指定のIDのUserの名前を取得するmethod Userの名前を取得できることをテストしたい
30.
30 指定のIDのUserの名前を取得するmethod Userの名前を取得できることをテストしたい HttpClientに正しく引数を渡せてい るかテストする
31.
31 指定のIDのUserの名前を取得するmethod Userの名前を取得できることをテストしたい HttpClientに正しく引数を渡せてい るかテストする 正しくコールされていることを確認
32.
32 指定のIDのUserの名前を取得するmethod Userの名前を取得できることをテストしたい HttpClientに正しく引数を渡せてい るかテストする 正しくコールされていることを確認 Httpの結果を正しく操作していることを テストする
33.
33 指定のIDのUserの名前を取得するmethod Userの名前を取得できることをテストしたい HttpClientに正しく引数を渡せてい るかテストする 正しくコールされていることを確認 Httpの結果を正しく操作していることを テストする 正しくオブジェクトから名前だけを戻しているこ とを確認
34.
34 まとめ ● 表示専用のComponentのテストは、Jest Snapshotを使う ●
DIは各テストファイルで、最小限のモックを jest.fn で作成する ● モックに対して指定の引数で正しくコールしているかどうかのテストを行う ● モックからの戻り値は jest.fn で随時設定して、各テストを進めていく
35.
35 ありがとうございました
Download