Submit Search
Upload
Riverpodでテストを書こう
•
4 likes
•
2,012 views
Shinnosuke Tokuda
Follow
2022/1/29 第一回FlutterGakkai登壇資料
Read less
Read more
Report
Share
Report
Share
1 of 22
Download now
Download to read offline
Recommended
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Shinnosuke Tokuda
Flutterでの単体テスト実施方法と、テスタブルなコードにリファクタリングするためのテクニック. またそれをGitHub Actionsで自動化してカバレッジを可視化する方法
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
大規模アプリを作るときの指針として、hooks_riverpod、state_notifier、freezedを使ってドメイン駆動設計を取り入れた場合の実装例を紹介。2021/12 Flutter大学の勉強会にて登壇した資料。。
go_router が隠してくれるもの
go_router が隠してくれるもの
cch-robo
2022/04/23 WTM IWD 2022 「集え Flutter レディース」セッション資料 2022/02/24 に Flutter packages に移管された go_router パッケージが利用している基盤とこれからについての考察です。 「集え Flutter レディース」は、 テック界に女性エンジニアが増えるよう応援する、Women Techmakers プログラムによる、 国際女性デー月間(International Women's Day Month)の女性エンジニアによる Flutter開発技術オンライン発表会です。 【IWD2022】集え Flutter レディース https://gdgkyoto.connpass.com/event/240258/ https://gdg.community.dev/events/details/google-gdg-kyoto-presents-wtm-international-womens-day-2022/
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
オブジェクト指向では、モデリング(分析)、設計、実装は、切れ目のない一体の活動。初期の分析は初期の設計であり、初期の実装。毎日分析し、毎日設計し、毎日実装しながら、一歩一歩、モデルも実装も進化させていく。
Flutter移行の苦労と、乗り越えた先に得られたもの
Flutter移行の苦労と、乗り越えた先に得られたもの
Recruit Lifestyle Co., Ltd.
iOS/Android共にリリースから10年を迎えたじゃらんアプリでは、さらなる開発効率と品質の向上を目指しFlutterへの順次移行に挑戦しています。本資料では、その過程で得られた知見についてまとめています。
MagicOnion入門
MagicOnion入門
torisoup
[非公式] Unite Tokyo 2019 Eve2 LT Fes https://connpass.com/event/139403/
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
http://d-cube.connpass.com/event/43057/ にて発表した内容です
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Pythonによる(Rubyでも大体適用可能)黒魔術へ入門するための案内書
Recommended
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Shinnosuke Tokuda
Flutterでの単体テスト実施方法と、テスタブルなコードにリファクタリングするためのテクニック. またそれをGitHub Actionsで自動化してカバレッジを可視化する方法
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
大規模アプリを作るときの指針として、hooks_riverpod、state_notifier、freezedを使ってドメイン駆動設計を取り入れた場合の実装例を紹介。2021/12 Flutter大学の勉強会にて登壇した資料。。
go_router が隠してくれるもの
go_router が隠してくれるもの
cch-robo
2022/04/23 WTM IWD 2022 「集え Flutter レディース」セッション資料 2022/02/24 に Flutter packages に移管された go_router パッケージが利用している基盤とこれからについての考察です。 「集え Flutter レディース」は、 テック界に女性エンジニアが増えるよう応援する、Women Techmakers プログラムによる、 国際女性デー月間(International Women's Day Month)の女性エンジニアによる Flutter開発技術オンライン発表会です。 【IWD2022】集え Flutter レディース https://gdgkyoto.connpass.com/event/240258/ https://gdg.community.dev/events/details/google-gdg-kyoto-presents-wtm-international-womens-day-2022/
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
増田 亨
オブジェクト指向では、モデリング(分析)、設計、実装は、切れ目のない一体の活動。初期の分析は初期の設計であり、初期の実装。毎日分析し、毎日設計し、毎日実装しながら、一歩一歩、モデルも実装も進化させていく。
Flutter移行の苦労と、乗り越えた先に得られたもの
Flutter移行の苦労と、乗り越えた先に得られたもの
Recruit Lifestyle Co., Ltd.
iOS/Android共にリリースから10年を迎えたじゃらんアプリでは、さらなる開発効率と品質の向上を目指しFlutterへの順次移行に挑戦しています。本資料では、その過程で得られた知見についてまとめています。
MagicOnion入門
MagicOnion入門
torisoup
[非公式] Unite Tokyo 2019 Eve2 LT Fes https://connpass.com/event/139403/
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
http://d-cube.connpass.com/event/43057/ にて発表した内容です
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Pythonによる(Rubyでも大体適用可能)黒魔術へ入門するための案内書
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
PyCon JP 2017 発表資料です。
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計 Domain-Driven Design ( DDD ) 準備 / スタートアップ / ブラッシュアップ / チャレンジ / 参考書籍 /
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
Golang勉強会 in Kagawa http://gdgshikoku.connpass.com/event/26262/
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
「企業のためのDocker実戦ガイド」発表資料 2017年2月27日(月) https://itmedia.smartseminar.jp/public/seminar/view/981
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
マイクロサービスアーキテクチャが話題を集め、コンポーネントのWeb API化が更なる急加速を見せる昨今。 とは言え「誰でも自由に叩いて良い」Web APIなんてのは事実上無く、ほぼ全てのケースで何かしらのアクセス制御が必要になります。 - Spring Security もサポートする昔ながらの「Basic認証」。古い、ということは、悪いソリューションなのか? - 最近のAPIのアクセス制御と言えば「OAuth 2.0」がトレンディ? Spring Security OAuth もあるし! - 一方でAWSは「APIキー方式」を採用。なぜAWSはOAuth2ではないのか? - Spring Security はまだ公式にサポートしていない「OpenID Connect」とは一体…? Webにおけるアクセス制御の歴史を振り返りつつ、様々なAPIの立ち位置と共に、その最適解を探っていきたいと思います。
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 モデリング/実装ガイド https://little-hands.booth.pm/items/1835632 発売記念に、本書の1,2章の内容を中心にDDDの概要について解説する勉強会です。
私にとってのテスト
私にとってのテスト
Takuto Wada
at Testing Casual Talks #1 (2013/07/24) http://atnd.org/events/40914
こわくない Git
こわくない Git
Kota Saito
「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
Droid Kaigi 2016で発表したものです。
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
最新版はこちらへ https://www.slideshare.net/zembutsu/say-hello-to-your-presentation ーーー 『IT系エンジニアのためのプレゼンテーション入門』 インフラエンジニアのためのプレゼン技術研究会 第0回 2015年2月21日(土) 14:00 ~ 17:00 さくらインターネット セミナールーム(東京都新宿区) #infrapre http://connpass.com/event/11739/
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Forkwell Meetup #3 https://forkwell.connpass.com/event/48147/
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
レガシーコード改善勉強会 in Yahoo Japan 2014.09.27 プロジェクトに対する方法論構築と、タスクマネジメントについての紹介 後半はMikado Methodの簡易紹介です。
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
- phpcon2022 の発表 - https://fortee.jp/phpcon-2022/proposal/b85ca73f-6383-4485-b2ae-4ec3e0913e72
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
BtoB SaaSの会社でDDDを活用して事業を成長させてきた中で、DDDのプラクティスの実践という面ではかなり大きな成果が得られました。 しかし、事業を成長させるという点において、DDDのプラクティスだけではうまくいかないこともあり、別のアプローチも同時に試行錯誤しています。 この発表では、うまく行ったプラクティスの内容と、カバーできなかった課題、そこに対する現在の取り組みについて紹介します。 ドメイン駆動設計 サンプルコード&FAQ https://little-hands.booth.pm/items/3363104 ドメイン駆動設計 モデリング/実装ガイド https://little-hands.booth.pm/items/1835632 ドキュメント内のブログ記事URL https://little-hands.hatenablog.com/entry/2020/12/22/ddd-in-first-3month
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
Humble Object Patternな話
Humble Object Patternな話
Hiroto Imoto
Roppongi.unity #01のLT資料です。 SpeakerDeckにアップロードできなかったのでSlideShareに上げています。 最新のスライドは以下から https://speakerdeck.com/adarapata
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
Go 1.7 Release Party in Tokyo http://gocon.connpass.com/event/37332/
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
2015 年 1 月 11 日に開催された 「Jenkins ユーザ・カンファレンス 2015 東京」 での発表資料です。
More Related Content
What's hot
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
PyCon JP 2017 発表資料です。
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計 Domain-Driven Design ( DDD ) 準備 / スタートアップ / ブラッシュアップ / チャレンジ / 参考書籍 /
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
Golang勉強会 in Kagawa http://gdgshikoku.connpass.com/event/26262/
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
「企業のためのDocker実戦ガイド」発表資料 2017年2月27日(月) https://itmedia.smartseminar.jp/public/seminar/view/981
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
マイクロサービスアーキテクチャが話題を集め、コンポーネントのWeb API化が更なる急加速を見せる昨今。 とは言え「誰でも自由に叩いて良い」Web APIなんてのは事実上無く、ほぼ全てのケースで何かしらのアクセス制御が必要になります。 - Spring Security もサポートする昔ながらの「Basic認証」。古い、ということは、悪いソリューションなのか? - 最近のAPIのアクセス制御と言えば「OAuth 2.0」がトレンディ? Spring Security OAuth もあるし! - 一方でAWSは「APIキー方式」を採用。なぜAWSはOAuth2ではないのか? - Spring Security はまだ公式にサポートしていない「OpenID Connect」とは一体…? Webにおけるアクセス制御の歴史を振り返りつつ、様々なAPIの立ち位置と共に、その最適解を探っていきたいと思います。
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
ドメイン駆動設計 モデリング/実装ガイド https://little-hands.booth.pm/items/1835632 発売記念に、本書の1,2章の内容を中心にDDDの概要について解説する勉強会です。
私にとってのテスト
私にとってのテスト
Takuto Wada
at Testing Casual Talks #1 (2013/07/24) http://atnd.org/events/40914
こわくない Git
こわくない Git
Kota Saito
「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
Droid Kaigi 2016で発表したものです。
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
最新版はこちらへ https://www.slideshare.net/zembutsu/say-hello-to-your-presentation ーーー 『IT系エンジニアのためのプレゼンテーション入門』 インフラエンジニアのためのプレゼン技術研究会 第0回 2015年2月21日(土) 14:00 ~ 17:00 さくらインターネット セミナールーム(東京都新宿区) #infrapre http://connpass.com/event/11739/
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Forkwell Meetup #3 https://forkwell.connpass.com/event/48147/
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
レガシーコード改善勉強会 in Yahoo Japan 2014.09.27 プロジェクトに対する方法論構築と、タスクマネジメントについての紹介 後半はMikado Methodの簡易紹介です。
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
- phpcon2022 の発表 - https://fortee.jp/phpcon-2022/proposal/b85ca73f-6383-4485-b2ae-4ec3e0913e72
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
BtoB SaaSの会社でDDDを活用して事業を成長させてきた中で、DDDのプラクティスの実践という面ではかなり大きな成果が得られました。 しかし、事業を成長させるという点において、DDDのプラクティスだけではうまくいかないこともあり、別のアプローチも同時に試行錯誤しています。 この発表では、うまく行ったプラクティスの内容と、カバーできなかった課題、そこに対する現在の取り組みについて紹介します。 ドメイン駆動設計 サンプルコード&FAQ https://little-hands.booth.pm/items/3363104 ドメイン駆動設計 モデリング/実装ガイド https://little-hands.booth.pm/items/1835632 ドキュメント内のブログ記事URL https://little-hands.hatenablog.com/entry/2020/12/22/ddd-in-first-3month
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
Humble Object Patternな話
Humble Object Patternな話
Hiroto Imoto
Roppongi.unity #01のLT資料です。 SpeakerDeckにアップロードできなかったのでSlideShareに上げています。 最新のスライドは以下から https://speakerdeck.com/adarapata
What's hot
(20)
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
私にとってのテスト
私にとってのテスト
こわくない Git
こわくない Git
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Humble Object Patternな話
Humble Object Patternな話
Similar to Riverpodでテストを書こう
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
Go 1.7 Release Party in Tokyo http://gocon.connpass.com/event/37332/
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
2015 年 1 月 11 日に開催された 「Jenkins ユーザ・カンファレンス 2015 東京」 での発表資料です。
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
登壇資料です https://vscode.connpass.com/event/221961/
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
第10回 Jenkins勉強会 2017/7/7(金) https://www.meetup.com/ja-JP/Tokyo-Jenkins-Area-Meetup/events/240833004/?eventId=240833004&chapter_analytics_code=UA-100000849-2
ドリコムのインフラCI
ドリコムのインフラCI
Go Sueyoshi (a.k.a sue445)
ドリコム AdventCalendar 2016( http://www.adventar.org/calendars/1768 ) の資料です
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
cch-robo
完全に理解した人達の「Web技術」Talk #4 (2020/04/30) の LT 資料です。 https://easy2.connpass.com/event/173015/
SwaggerとAPIのデザイン
SwaggerとAPIのデザイン
Kazuhiro Hara
Swaggerではじめる楽々RESTful APIデザイン&ドキュメント管理
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
もっとも手軽にP4を試すことが可能なP4スイッチのソフトウェアリファレンス実装「 P4 BMv2 (Behavior Model v2)」の環境構築・実行方法の解説。
Pyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
Introduction to Python Implemetations
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
Groovy Bootcamp Handson slide
JavaScript And Keywords
JavaScript And Keywords
uupaa
JavaScript And Keywords
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
Daisuke Ando
レビューシステムを中心として、今までの少人数開発からチーム開発に移行、それに伴いアプリケーション分割等を含んだアーキテクチャ変更を行いました。 実際に採用した設計/開発手法やツールを用いて開発フローを改善し、いくつかの問題点を解決できた、という話です。
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
leverages_event
10月29日実施イベントのスライド
RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
Design Solution Forum 2021 SP13
第8回 福岡西区勉強会
第8回 福岡西区勉強会
Shinya Kinoshita
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
Kubernetes 環境での CI/CD の方法は色々考えることがありますが、今回は KubeCon + CloudNativeCon 2017 で聞いてきた沢山の CI/CD のセッションと、CyberAgent でのいくつかの実例を含めながら、最小公倍数?最大公約数?的なお話をさせていただきました。 付録として、CI/CD 周りで興味深かったセッションと Keynote をまとめてあります。 @市ヶ谷Geek★Night #16 Kubernetes Christmas!
RSpec Performance Turning
RSpec Performance Turning
Go Sueyoshi (a.k.a sue445)
社内のRSpec勉強会で使った資料です http://sue445.hatenablog.com/entry/2013/07/30/235502
Fluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent Bit
Seiya Mizuno
Deep dive into internal of Fluentd1.2: trace it in the level of source code. Giving a brief introduction to Fluent Bit and compare its performance with Fluentd.
Similar to Riverpodでテストを書こう
(20)
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
ドリコムのインフラCI
ドリコムのインフラCI
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
SwaggerとAPIのデザイン
SwaggerとAPIのデザイン
How to run P4 BMv2
How to run P4 BMv2
Pyconjp2014_implementations
Pyconjp2014_implementations
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
JavaScript And Keywords
JavaScript And Keywords
20151029 ヒカラボ講演資料
20151029 ヒカラボ講演資料
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
RgGen ご紹介
RgGen ご紹介
第8回 福岡西区勉強会
第8回 福岡西区勉強会
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
RSpec Performance Turning
RSpec Performance Turning
Fluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent Bit
Riverpodでテストを書こう
1.
Riverpodでテストを書こう FlutterGakkai 2022/1/29
2.
目次 ● Flutterでのテストことはじめ ● サンプルプロジェクトの解説 ●
Unit Test ● Widget Test ● まとめ 2
3.
自己紹介 とっく(@tokkuu) ● 都内AdTech企業のWebエンジニア ● php/python/TypeScript ●
AWS周り 3-tierからサーバレスまで ● 元々はSIerのインフラエンジニア ● Flutter歴は1年半くらい 3
4.
はじめに ● 説明すること ○ Riverpodでのユニットテストの書き方 ○
RiverpodでのWidgetテストの書き方 ● 説明しないこと ○ DIを用いたProviderでのテストの書き方 ○ Integration Testについて ○ CIへの組み込みやDDDについて ● Providerでのテストについて ○ Flutterで単体テストを行う方法とGitHub Actionsを使った自動化 ● DDDの説明(同じサンプルを使用) ○ hooks_riverpod + state_notifier + freezedでのドメイン駆動設計 4
5.
Flutterでのテストことはじめ
6.
Flutterにおけるテストの種類 Flutterには3種類のテストがある 公式ページ:https://flutter.dev/docs/cookbook/testing ・Unit Test ・Widget Test ・Integration
Test いわゆる単体テスト。関数、メソッド、クラスの検証を行う Widgetが正しく生成されるかのテスト。 結合テスト。シナリオを書いてエミュレータ上で自動操作によるテス トが行える。 6
7.
Unit Testの準備 ・パッケージの導入 pubspec.yamlにflutter_testが追加されていること 7
8.
Unitテストの書き方と実行方法 プロジェクトルートの testフォルダの下に XXX_test.dartファイルを作成 import 'package:flutter_test/flutter_test.dart' ; import 'package:todo_app_sample_flutter/data/todo_item.dart'
; void main() { group('TodoItemのゲッターのテスト ', () { final TodoItem todoItem = TodoItem( id: 0, title: 'title', body: 'body', createdAt: DateTime (2020, 1, 1), updatedAt: DateTime (2020, 1, 1), isDone: true, ); test('idのテスト', () { expect (todoItem.getId, 0); }); 8
9.
Unitテストの書き方と実行方法 プロジェクトルートの testフォルダの下に XXX_test.dartファイルを作成 import 'package:flutter_test/flutter_test.dart' ; import 'package:todo_app_sample_flutter/data/todo_item.dart'
; void main() { group('TodoItemのゲッターのテスト ', () { final TodoItem todoItem = TodoItem( id: 0, title: 'title', body: 'body', createdAt: DateTime (2020, 1, 1), updatedAt: DateTime (2020, 1, 1), isDone: true, ); test('idのテスト', () { expect (todoItem.getId, 0); }); main関数の中に 実際のテストを記載 test(‘テストケース名’,(){ 実際のテスト処理 expect(結果,期待する値); }); group()でテストケースを まとめることが出来る。 9
10.
テスト実行 1. テストファイルを右クリック 2. Run
‘test in <テストファイル>’ デバッグの画面が開いて 結果が表示される 10
11.
サンプルプロジェクトの解説
12.
サンプルプロジェクトの説明 ● DDDぽく書いている ● application層の todo_app_service.dartがdomain層の classを使う形 ●
ビジネスロジックのテストという文脈で は、todo_app_service.dartを テストすれば十分 ● このプロジェクト自体の解説は Qiitaの記事参照 ● 全体のコードはこちら 12
13.
サンプルプロジェクトの説明 - TodoAppService ●
todo_app_serviceは todoListRepositoryに依存して いる ● todoListRepositoryはFirebase との通信を担う ● DDDじゃない場合、MVVM + Repositoryのパターンなどで は、View Modelでテストすれば 良い 13
14.
テストの準備 - TodoListRepositoryのモックを作る ●
TodoListRepositoryを実装した TodoListRepositoryMemを作 る ● TodoListRepositoryMemでは Firebaseとの通信を行わず、テ スト用に一時的にデータを貯め れるように実装しておく ● コード 14
15.
テストの準備 - ProviderContainerでoverrideする ●
Riverpodでは ProviderContainerを使ってモッ ク用のクラスを宣言することで、 Providerを上書きできる。 ● 右のように TodoListRepositoryMemを 宣言しておくことで このコンテナから呼び出したリ ポジトリやサービスでは 上書きされたモック用クラスが 呼び出される様になる。 15
16.
Unit Test
17.
Unit Test -
宣言 ● Widgetの生成が絡まない ロジックをテストする ● setUpやtearDownが使える ので、先程のコンテナの宣言や データのセットが行える。 ● Null Safetyなバージョンの Flutterであれば、コンテナや モックはlateで宣言しておくこと でnon-nullableに扱える 17
18.
Unit Test -
実行 1. 空のTodoItemを_repositoryに セットし、自動生成され 割り当てられたnextIdを取得 2. テスト対象のクラスを インスタンス化 3. テスト対象のメソッドを 実行し結果を expectメソッドで比較 2. 3. 1. 18
19.
Widget Test
20.
WidgetTest - 宣言 ●
モック用クラスは引き続き containerから取得 ● Widgetを生成するために、 tester.pumpWidgetの中で ProviderScopeを宣言し、モック にoverride ● childの中でテスト対象Widget の描画に必要なWidget、 MaterialAppなどを宣言した上 で対象のWidgetを宣言 20
21.
WidgetTest - 実行 ●
find.textで描画されたWidgetの 中のテキストを探す。 findsOneWidgetは「それが1つ あること」という意味になる。 ● tester.tapなどで、特定のIcon などを探してボタンをタップさせ ることもできる。 21
22.
まとめ ● Riverpodで記述するときは、Repositoryをあとからoverrideできるため、わざわざ 抽象クラスを作っておいて、DIできるようにドメインクラスを実装する必要がない ● Unit
Testのほうが比較的簡単に、最低限のロジックのテストが書きやすい ● CI組んでおけば、快適にTDDできそう ● Widget Testまで書いて、Codecovなどを使ってカバレッジを可視化して、CI組んで Slack通知まで設定しておくと快適に、より安全に開発が進められると思いました。 (関連記事) ご清聴ありがとうございました
Download now