Soumettre la recherche
Mettre en ligne
Junitを使ったjavaのテスト入門
•
48 j'aime
•
37,861 vues
Satoshi Kubo
Suivre
Technologie
Signaler
Partager
Signaler
Partager
1 sur 77
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Recommandé
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
例外設計における大罪
例外設計における大罪
Takuto Wada
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
Jakarta CDI 4.0
Jakarta CDI 4.0
Satoshi Kubo
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Satoshi Kubo
Contenu connexe
Tendances
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
例外設計における大罪
例外設計における大罪
Takuto Wada
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
増田 亨
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
Tendances
(20)
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
例外設計における大罪
例外設計における大罪
Redisの特徴と活用方法について
Redisの特徴と活用方法について
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
ドメイン駆動設計入門
ドメイン駆動設計入門
Plus de Satoshi Kubo
Jakarta CDI 4.0
Jakarta CDI 4.0
Satoshi Kubo
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Satoshi Kubo
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
Satoshi Kubo
今のJava
今のJava
Satoshi Kubo
できる!Pmdカスタマイズ
できる!Pmdカスタマイズ
Satoshi Kubo
Javaの速度比較
Javaの速度比較
Satoshi Kubo
Java EEの話(仮)
Java EEの話(仮)
Satoshi Kubo
テストって何がしたいんですか?
テストって何がしたいんですか?
Satoshi Kubo
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
Satoshi Kubo
泥沼の中のパフォーマンスチューニング #JJUG
泥沼の中のパフォーマンスチューニング #JJUG
Satoshi Kubo
Advent calendarを作ってみた
Advent calendarを作ってみた
Satoshi Kubo
Java ee6 with scala
Java ee6 with scala
Satoshi Kubo
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
Satoshi Kubo
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp
Satoshi Kubo
JavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjp
Satoshi Kubo
Plus de Satoshi Kubo
(15)
Jakarta CDI 4.0
Jakarta CDI 4.0
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
今のJava
今のJava
できる!Pmdカスタマイズ
できる!Pmdカスタマイズ
Javaの速度比較
Javaの速度比較
Java EEの話(仮)
Java EEの話(仮)
テストって何がしたいんですか?
テストって何がしたいんですか?
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
泥沼の中のパフォーマンスチューニング #JJUG
泥沼の中のパフォーマンスチューニング #JJUG
Advent calendarを作ってみた
Advent calendarを作ってみた
Java ee6 with scala
Java ee6 with scala
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp
JavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjp
Junitを使ったjavaのテスト入門
1.
JUnitを使ったJavaのテスト入門 @megascus 13年6月20日木曜日
2.
•名前: 久保 智 •twitter id:
@megascus •JJUG幹事 •JJUG幹事募集中です! 自己紹介 13年6月20日木曜日
3.
注意 13年6月20日木曜日
4.
本日はJava初心者向けです 13年6月20日木曜日
5.
高度な内容はでてきません 13年6月20日木曜日
6.
アジェンダ •なぜJUnitを使うのか •JUnitの使い方 •JUnitを効果的に使うために 13年6月20日木曜日
7.
アジェンダ •なぜJUnitを使うのか •JUnitの使い方 •JUnitを効果的に使うために 13年6月20日木曜日
8.
なぜJUnitを使うのか 13年6月20日木曜日
9.
動かない時の確認方法 13年6月20日木曜日
10.
どうしていますか? 13年6月20日木曜日
11.
デバッグプリント 13年6月20日木曜日
12.
System.out.println() 13年6月20日木曜日
13.
デバッグプリント public void doSomething
(Human human) { System.out.println(human.getFamillyName()); //変数の中に何が入ってるのかを //標準出力に出力する } 13年6月20日木曜日
14.
デバッカー 13年6月20日木曜日
15.
動いているプログラムに 介入する 13年6月20日木曜日
16.
デバッカー 13年6月20日木曜日
17.
よくやる(はず) 13年6月20日木曜日
18.
これらの問題点 13年6月20日木曜日
19.
記録・再生ができない 13年6月20日木曜日
20.
問題点 •テストした結果を他の人が簡単に参照することが出来 ない。(画面キャプチャとかとれば出来る) •もう一度テストしたいときは、改めて人間が操作しな いといけない。(あらためてデバッグする) 13年6月20日木曜日
21.
ここで考えて下さい 13年6月20日木曜日
22.
本当に問題ですか? 13年6月20日木曜日
23.
本当に問題ですか? •一回動いたら動かなくなること無いから最初に一回だ け確認すればいいよね。 13年6月20日木曜日
24.
そんなことはないです 13年6月20日木曜日
25.
例えばWindows 13年6月20日木曜日
26.
例えばWindows http://www.theverge.com/2012/7/4/3136851/windows-logo-backwards-evolution 13年6月20日木曜日
27.
例えばWindows •数年に一度のメジャーアップデート(XPとかVistaとか 7とか8とか) •それより短い期間でのサービスパック(SP1とかSP2と か) •毎月のセキュリティパッチ 13年6月20日木曜日
28.
動かなくなった例 http://itpro.nikkeibp.co.jp/article/NEWS/20130416/471121/ 13年6月20日木曜日
29.
ここでソフトウェアについて 13年6月20日木曜日
30.
ソフトウェア •一度リリースしたソフトウェアを更新しないで済むこ とはあまりない •最近のソフトウェアは複雑なので、修正した内容がど こに影響を与えるか判りにくい •更新後にすでにある機能が動作するかを確認すること (回帰テスト)は必須 13年6月20日木曜日
31.
回帰テスト 13年6月20日木曜日
32.
回帰テスト •ソフトウェアプログラムに変更を加えた際、それに よって新たな不具合が起きていないかを検証するテス トのこと •今までのテストをやり直すため、人手でやるとすごい 時間がかかる •一ヶ月単位のリリースだと、毎月回帰テストが必要で 大変 13年6月20日木曜日
33.
ここまで説明した上で 13年6月20日木曜日
34.
JUnitができることは何か 13年6月20日木曜日
35.
JUnitができること •特定のメソッドの引数と戻り値が期待された値と同じ かを確認するプログラムを書くことができる 13年6月20日木曜日
36.
なぜJUnitを使うのか 13年6月20日木曜日
37.
なぜJUnitを使うのか •テストした内容を記録・再生するため •いつでも再生できるようにしておくことで、デグレー ド(元々動いた機能が動かなくなること)を防ぎやすく なる •回帰テストの自動化 13年6月20日木曜日
38.
なぜJUnitを使うのか •人手でやることを機械が勝手にやってくれるようにな れば楽ですよね 13年6月20日木曜日
39.
逆にJUnitを使わない場合 •使い捨てソフトウェア •数年に一度しかリリースされないソフトウェア •JUnitでやりたい内容を人力でがんばる場合 13年6月20日木曜日
40.
アジェンダ •なぜJUnitを使うのか •JUnitの使い方 •JUnitを効果的に使うために 13年6月20日木曜日
41.
JUnitの使い方 13年6月20日木曜日
42.
JUnitの入手方法 13年6月20日木曜日
43.
IDE使ってれば すでに入ってます ※Eclipse、NetBeans、IntelliJなど 13年6月20日木曜日
44.
JUnitができること 13年6月20日木曜日
45.
JUnitができること •特定のメソッドの引数と戻り値が期待された値と同じ かを確認するプログラムを書くことができる 13年6月20日木曜日
46.
JUnitを実際に書いてみる ※ここから先はEclipseでやってみます 13年6月20日木曜日
47.
テスト対象を書く (Math.java) 13年6月20日木曜日
48.
右クリックから JUnit Test Caseを選択 13年6月20日木曜日
49.
そのままnextを押す 13年6月20日木曜日
50.
テストしたいメソッドを 選択してFinish 13年6月20日木曜日
51.
初回はライブラリを 追加するか聞かれるのでOK 13年6月20日木曜日
52.
テストのテンプレート完成 13年6月20日木曜日
53.
テストのライブラリを インポート 13年6月20日木曜日
54.
テスト対象メソッドに @Testアノテーション 13年6月20日木曜日
55.
動かしてみる 作成したテストクラスを右クリックして Run AsからJUnitTestを選択するだけ 13年6月20日木曜日
56.
動いた けれども失敗 13年6月20日木曜日
57.
failメソッドは テストを失敗させる 13年6月20日木曜日
58.
テストを成功させる 13年6月20日木曜日
59.
テストを成功させる 13年6月20日木曜日
60.
テストを失敗させる(2) 13年6月20日木曜日
61.
テストを失敗させる(2) なぜ失敗したのかのメッセージがでる 13年6月20日木曜日
62.
assertEquals(expected, actual) •expected(推定した値)がactual(実際の値)と等しけれ ばテストが成功、等しくなければ失敗 •JUnitに慣れるまではこれを書くのがお仕事になる 13年6月20日木曜日
63.
今までのを並べてみる 13年6月20日木曜日
64.
(補足)Exceptionのテスト 13年6月20日木曜日
65.
JUnitの使い方 •IDEが適当にテンプレートを作ってくれるので細かい 書き方は覚えなくてもOK •基本はassertEquals •Exceptionが発生するかは@Test(expected=〜) 13年6月20日木曜日
66.
アジェンダ •なぜJUnitを使うのか •JUnitの使い方 •JUnitを効果的に使うために 13年6月20日木曜日
67.
JUnitを効果的に使うために 13年6月20日木曜日
68.
JUnitの高度な使い方を 学びたいなら ここからCMです。ただし、登壇者にはお金は入ってこない 13年6月20日木曜日
69.
JUnit実践入門 JUnitのしっかりとした書 き方を知りたいなら。 JUnitの書き方の最適化か らJUnitを使ったテストの 自動化まで。 Javaプログラマのみなさ ま必須の品です。 http://goo.gl/P8Bph 13年6月20日木曜日
70.
実践テスト駆動開発 JUnitを開発手法のメイン にしてみた。 テストを設計ととらえ て、テストと実装を交互 に行うことでバグの発生 率を格段に下げることの 出来る開発手法、テスト 駆動開発に関する本。 http://goo.gl/3O4UE 13年6月20日木曜日
71.
テスト駆動開発 13年6月20日木曜日
72.
バグが半分以下に なることで有名です 13年6月20日木曜日
73.
http://www.slideshare.net/t_wada/tddbc-fukuoka-day1 13年6月20日木曜日
74.
そんなTDDが学べるイベント 13年6月20日木曜日
75.
TDDBC テスト駆動開発ブートキャンプ 13年6月20日木曜日
76.
次回、7月楽天タワーにて Comming soon.... http://devtesting.jp/tddbc/ ただし、登壇者とは関係がありません。参加者として参加してるかもしれない。 13年6月20日木曜日
77.
以上 ありがとうございました 13年6月20日木曜日
Télécharger maintenant