Submit Search
Upload
Spring 歴約1年初心者の Test 奮闘記
•
2 likes
•
3,245 views
C
chishizu naito
Follow
2019/4/25 JSUG勉強会 2019その4 初心者による初心者のSpring入門
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 57
Download now
Download to read offline
Recommended
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
今こそ知りたいSpring Batch (Spring Fest 2020講演資料) 2020年12月17日 株式会社NTTデータ 公共・社会基盤事業推進部 橋本 直樹
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
ESNextってなんぞ?を解説するために作った資料です。
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
http://www.ustream.tv/recorded/45962241
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Spring Fest 2017の発表資料
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
LayerX社内の定例でつかった資料です。
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
アプリ「ニュースパス」をマイクロサービスで開発してみた泥臭い体験談です。
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術 Feb 16, 2016 @ 日本OSS推進フォーラム
Recommended
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
今こそ知りたいSpring Batch (Spring Fest 2020講演資料) 2020年12月17日 株式会社NTTデータ 公共・社会基盤事業推進部 橋本 直樹
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
ESNextってなんぞ?を解説するために作った資料です。
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
http://www.ustream.tv/recorded/45962241
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
Spring Fest 2017の発表資料
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
LayerX社内の定例でつかった資料です。
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
アプリ「ニュースパス」をマイクロサービスで開発してみた泥臭い体験談です。
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術 Feb 16, 2016 @ 日本OSS推進フォーラム
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
2013/04/20 デブサミ 2013 アワード & リバイバル
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2022-03-05 YAPC::Japan::Online 2022
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
第1回Database Lounge Tokyoで発表したスライドです。ゆるふわにMySQLのアーキテクチャを解説しました。
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
従来のWebアプリケーションとSPAの違いに着目し、Spring Boot × Vue.jsでSPAを作る際のポイントやハマりどころを紹介します。
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
http://d-cube.connpass.com/event/43057/ にて発表した内容です
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
GitFlow,GitHubFlow,GitLabFlowは使わない! gitの新しいブランチモデル「GitFeatureFlow」を 考えたので紹介します
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
シリコンバレーのスタートアップを数多く取材する中で気付いた「シリコンバレーにおけるディシプリン(規律)の存在」や「General Electric(GE)やIBM、SAPといった老舗企業が必死になってシリコンバレーのスタートアップを真似している理由」、そして「日本企業がイノベーションを実現するための処方箋」について解説します 詳しく知りたい場合は「GE 巨人の復活」をご覧下さい。 http://www.nikkeibp.co.jp/atclpubmkt/book/17/P55110/ 今後の記事は「シリコンバレーNext」をご覧下さい。 http://itpro.nikkeibp.co.jp/siliconvalley/
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
データベースにおけるSaaSパーティショニングモデル、データベースエンジン毎の構成イメージ、マルチテナント化に向けた考慮点について解説しています。
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
2018年11月2日に行われたAWS Dev Day Tokyo 2018での講演「マイクロサービス化デザインパターン」の資料です。
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
東北大学で公開されている「言語処理100本ノック」をヒントに、Javaの実力が身につく問題を作成しました。作成者から、作問のねらいや裏話などをご紹介いたします。
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
当資料は、2012/1/14に開催された、以下の勉強会で発表した資料です。 わんくま同盟 名古屋勉強会 #20 & 第39回 名古屋アジャイル勉強会 & TEF東海 勉強会 http://www.wankuma.com/seminar/20120114nagoya20/ 1/19 ・当日のワークの結果を追加した ・TEFの紹介部分を微修正 ・P1タイトル誤字を修正 1/23 ・WACATEのリンクを追加 ・テスト設計関連の参考リンクを追加 ・P18の図にライフサイクルの補足を追加 ・P16の表示が変だったのを直したよ
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
【東京】JJUG ナイト・セミナー 「入門Spring Boot&Spring Cloud」 1/23(月)、JSUG共催
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Justtechtalk #9でお話した資料になります!
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計の4つの基本活動、Springのプログラミングモデル、ドメイン駆動設計のためのSpringの使い方
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
Web API開発をするなら、ドキュメントは自動生成にしておこう!(PHPerKaigi2021) 皆さんの開発現場はAPIドキュメントの自動生成化がお済みでしょうか? このLTではCakePHP4にSwaggerを導入して、コードのアノテーションからドキュメントを自動生成するまでの流れをご紹介いたします。 ▼こんな方におすすめ ・これからWeb API開発を始める方 ・ドキュメント書くの面倒な方 ・実装とドキュメントの乖離に苦労したことがある方 昨年、社内で実施した勉強会のテーマの中で一番メンバーの反応が良かったのが「アノテーションからのドキュメント自動生成」でした。ドキュメント作成の手間を少しでも減らして、開発体験を向上させていきましょう! (LTではCakePHPをサンプルコードとして紹介いたしますが、Laravelに導入する手順も別途資料をご用意させていただく予定です。) https://fortee.jp/phperkaigi-2021/proposal/976b1869-082b-4309-a2c5-f23ae43bd134
やってはいけない空振りDelete
やってはいけない空振りDelete
Yu Yamada
MySQLにおける空振りDeleteによるlockの違いについて 山田 雄(株式会社リクルートライフスタイル)
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
More Related Content
What's hot
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
2013/04/20 デブサミ 2013 アワード & リバイバル
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2022-03-05 YAPC::Japan::Online 2022
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
第1回Database Lounge Tokyoで発表したスライドです。ゆるふわにMySQLのアーキテクチャを解説しました。
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
従来のWebアプリケーションとSPAの違いに着目し、Spring Boot × Vue.jsでSPAを作る際のポイントやハマりどころを紹介します。
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
http://d-cube.connpass.com/event/43057/ にて発表した内容です
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
GitFlow,GitHubFlow,GitLabFlowは使わない! gitの新しいブランチモデル「GitFeatureFlow」を 考えたので紹介します
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
シリコンバレーのスタートアップを数多く取材する中で気付いた「シリコンバレーにおけるディシプリン(規律)の存在」や「General Electric(GE)やIBM、SAPといった老舗企業が必死になってシリコンバレーのスタートアップを真似している理由」、そして「日本企業がイノベーションを実現するための処方箋」について解説します 詳しく知りたい場合は「GE 巨人の復活」をご覧下さい。 http://www.nikkeibp.co.jp/atclpubmkt/book/17/P55110/ 今後の記事は「シリコンバレーNext」をご覧下さい。 http://itpro.nikkeibp.co.jp/siliconvalley/
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
データベースにおけるSaaSパーティショニングモデル、データベースエンジン毎の構成イメージ、マルチテナント化に向けた考慮点について解説しています。
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
2018年11月2日に行われたAWS Dev Day Tokyo 2018での講演「マイクロサービス化デザインパターン」の資料です。
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
東北大学で公開されている「言語処理100本ノック」をヒントに、Javaの実力が身につく問題を作成しました。作成者から、作問のねらいや裏話などをご紹介いたします。
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
当資料は、2012/1/14に開催された、以下の勉強会で発表した資料です。 わんくま同盟 名古屋勉強会 #20 & 第39回 名古屋アジャイル勉強会 & TEF東海 勉強会 http://www.wankuma.com/seminar/20120114nagoya20/ 1/19 ・当日のワークの結果を追加した ・TEFの紹介部分を微修正 ・P1タイトル誤字を修正 1/23 ・WACATEのリンクを追加 ・テスト設計関連の参考リンクを追加 ・P18の図にライフサイクルの補足を追加 ・P16の表示が変だったのを直したよ
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
【東京】JJUG ナイト・セミナー 「入門Spring Boot&Spring Cloud」 1/23(月)、JSUG共催
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Justtechtalk #9でお話した資料になります!
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ドメイン駆動設計の4つの基本活動、Springのプログラミングモデル、ドメイン駆動設計のためのSpringの使い方
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
Web API開発をするなら、ドキュメントは自動生成にしておこう!(PHPerKaigi2021) 皆さんの開発現場はAPIドキュメントの自動生成化がお済みでしょうか? このLTではCakePHP4にSwaggerを導入して、コードのアノテーションからドキュメントを自動生成するまでの流れをご紹介いたします。 ▼こんな方におすすめ ・これからWeb API開発を始める方 ・ドキュメント書くの面倒な方 ・実装とドキュメントの乖離に苦労したことがある方 昨年、社内で実施した勉強会のテーマの中で一番メンバーの反応が良かったのが「アノテーションからのドキュメント自動生成」でした。ドキュメント作成の手間を少しでも減らして、開発体験を向上させていきましょう! (LTではCakePHPをサンプルコードとして紹介いたしますが、Laravelに導入する手順も別途資料をご用意させていただく予定です。) https://fortee.jp/phperkaigi-2021/proposal/976b1869-082b-4309-a2c5-f23ae43bd134
やってはいけない空振りDelete
やってはいけない空振りDelete
Yu Yamada
MySQLにおける空振りDeleteによるlockの違いについて 山田 雄(株式会社リクルートライフスタイル)
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
What's hot
(20)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
テストを分類してみよう!
テストを分類してみよう!
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
やってはいけない空振りDelete
やってはいけない空振りDelete
例外設計における大罪
例外設計における大罪
Spring 歴約1年初心者の Test 奮闘記
1.
Spring 歴約1年初⼼者の Test 奮闘記 タグバンガーズ
内藤
2.
• 内藤 千静 所属:株式会社タグバンガーズ •
Spring 歴 1年弱くらい • Java 歴4,5年くらい ⾃⼰紹介
3.
奮闘⼀覧 1.JUnit奮闘記 2.Mockito奮闘記 3.SpringRunner奮闘記 1.springRunnerでControllerのテスト 2.springRunnerでrepositoryのテスト 4.まとめ
4.
JUnit奮闘記
5.
研修も終わり、実務を始めてから数⽇ そろそろ、Unit Testも実装していきたいよね。 testのプログラムを書くんだよ。 まあとりあえず、やりながら説明するよ。 Unit Test?(って単体テストだよな…?実装っ て?) え?(書くって何だ。) よくわかんないけどわかりました。 Unit
Testを書くにあたってJUnitを使ってくね。 はい?(またよくわからん英語出てきた。)
6.
くそだる…
7.
そして私がどれくらいTestの知識がなかったかというと… こいつ
8.
Unit Testと仲良くなる為には彼を知るところから 始めなければいけない(ついでにJUnitも)🧐
9.
Unit Testについて調べてみたらこんなことがわかりました • 作成したコードが要件を満たしているか確認するもの •
プロダクションコードに書かれた処理がユニットテストに提⽰され るため、プロダクションコードの理解を助けてくれる • ⼀度書いてしまえば、⼿軽に何度でもテストを⾏うことができます。
10.
そしてJUnitではこんなことができるらしい…!!
11.
⼀度書いてしまえば、 何度でも使いまわせる、、、だと!? しかも⾃動化される、、、!??
12.
このクラスのtestコードを書け!! • getWordメソッドが呼ばれた際に想 定している値が返ってくるか
13.
• getWord()の引数1を指定した場合 に”いえーい”が返ってくる • getWord()の引数2を指定した場合 に”元気ー??”が返ってくる •
上記以外の引数を渡した場合 に”1or2を⼊⼒して下さい”が返っ てくるか
14.
実際に⾊々調べながら書いた結果がこちら assertThat()を使⽤して想定した値が 返ってくるか確認
15.
あれ?割と余裕じゃね…? 👏👏👏
16.
Mockitoテストでの奮闘記
17.
UnitTestを知り、余裕をこいていたある⽇ この修正のテスト書ける? ほいじゃよろしく👍 それ依存されてるクラスを mockしなきゃテスト難しいかも 書けます(余裕だわ) 承知です!! ……??なんかエラーがでまくってて上⼿くテ ストが動かないです。。 mock? mockito使ってやればいけるよ(^ω^)
18.
mockitoって?
19.
MockitoJUnitRunner ※mockを簡単に使えるように⼿助けしてくれるライブラリの⼀つです。 JUnit単体ではmock Testを⾏うことが不可能なため、 mockライブラリーを使⽤する必要があります。 使⽤する際はいい感じに何かしてくれる おまじないの@RunWithに MockitoJunitRunnner.classを指定すると使える ※テストを⾏う際に依存しているクラスを装ってそれっぽく動いてくれる便利な機能
20.
mockを使わなきゃいけない場⾯って?
21.
1. 検証したいクラスは完成済みでテストしたいんだけど、クラスの中で 利⽤している別クラスが未完成の場合 2. 異常系の動作確認を⾏う場合 3.
⻑々と依存しているクラスのnewをおこなうのが⾯倒な場合 4. 外部との連携を⾏うクラスの依存がある場合
22.
この機能を使って実装してみよー
23.
今回は未完成のクラスがあった場合のtest
24.
Constructorを少し変更
25.
テスト
26.
プルリクダメ出し @InjectMocksを使⽤して書き直してください。 @InjectMocks?わかりました。 (分かったとは⾔っていない) 過去の作成されたTestを⾒漁ってみたらあった @injectMocks使⽤例画像春 名前はsampleに変更してます。
27.
とりあえず、 ⾒つけたTestを⾒ながら作ってみる…
28.
テストもできて、無事プルリク通った テストを⾏いたい対象のクラス テスト対象のクラスに 依存しているクラス
29.
SpringRunner奮闘記 ‒Controller編
30.
SpringRunnner?知らんけどいけるっしょ この修正のテストお願いします。 SpringRunner使ってDIされてるのmockして みて 承知です! …。 依存している⼦をmockにしたいのですが、な んかうまくいきません…。 SpringRunnner? SpringRunnner使ってやればいけるよ (^ω^)
31.
これ SpringRunnnerってそもそもなに? 過去に書かれまくっていたtestから⾒つけ出しました
32.
SpringRunnerは? Bean同⼠の連携テストを⾏いたい… テスト上でDIの機能を活⽤したい… そんな時にSpringRunnerは使うみたいです。 1. JUnit上でSpringのDIコンテナを動かす機能 2. アプリケーションサーバ上にデプロイせずに、Spring
MVCの動作を再現する機能 テスト上で@Autowiredが使えるようになるよ。
33.
とりあえず、先輩⽅の作成した過去のテストを⾒てみよう 🙃 ?????
34.
SpringRunnerでは@MockBeanで Mockitoでは@Mock?
35.
@Mockと@MockBeanの違い @Mock @MockBean SpringRunnerから提供されているアノテーションで、mockオブジェクト が⽣成されると同時にアプリケーションコンテキストに追加される。 mockitoから提供されているアノテーションでmockオブジェクトの⽣成 をしてくれる。 噂のDIコンテナかぁって思って下さい
36.
あ、そうだ、このtestではリクエストを⾏なっ た際に返ってくるステータスの検証を ⾏なって下さい ?わかりました(分かったとは⾔ってない) 今までみたいにただメソッドを呼び出して返り値をチェックする 感じではなさげな匂いを察知
37.
このクラスに対してリクエストを⾶ばしてステータスをみる的な
38.
いい感じに何かしてくれる おまじない達 DIしてるspringのやつが貼ってあるていで
39.
返ってくるステータスが 200番かどうか 確認してます。
40.
怒られました。
41.
何で怒られているか Beanが⾜りずに依存関係が組めていないのでエラーが起こっていました。
42.
SpringでunitTestを実装してみよー! DIされているビーンのモックを ここで作る いい感じ
43.
プルリクを送るとーーー な、なんだってー!? 最初から⾔ってくれい!! 承知です…。 あと、⼊⼒エラーだった場合に表⽰される messageの検証もお願いします。
44.
Bodyの中⾝を⾒るので,,, Content()を⽐較でいいのか,,,?
45.
エラーメッセージはjson形式でresponse bodyの中に 格納されて渡されることになってます。 { ”errorMessage“:
”⼊⼒エラーです。" } どうassertしようか 🧐
46.
ライブラリーからjsonの部分抜粋してきました
47.
Jsonpathを使⽤してアサートし無事解決 最終的にできたtestがこちら
48.
springRunner奮闘記 ‒repository編
49.
SpringRunnner?そんなんなれましたわww Repository.classのテストしてね 承知です!! データベースとのIntegration Test🤔 データベースへのIntegration Testになると思 うので使うアノテーション気をつけて 習うより慣れろ感覚でとりあえずやってみよー!
50.
ちょっと待って、データのtestってことはsql流さなきゃいけないんじゃないか。。。? とりあえず過去に作成されたテストを⾒返して、 このアノテーションを使わなきゃいけないのが分かった。
51.
んえええ,テスト環境で どうやってデータ作ればいいんだよ
52.
実際にデータを登録できる⽅法があることを発⾒ 初期データはここにInsertを書けばできる!! INSERT INT book(code,
name) VALUES (ʼ001ʼ, ʻ源⽒物語ʼ);
53.
本を探すrepository Entity
54.
H2にある初期データを取得し、 アサートを⾏う
55.
まとめ
56.
• SpringRunnerを使⽤することによりテストの幅が広がる • SpringでのUnitTestは描きやすい •
⼀年初⼼者でもそれっぽくテストが書けるようになる
57.
終わり
Download now