Upload
Download free for 30 days
Login
Submit search
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
30 likes
7,139 views
Shuji Watanabe
オープンソースカンファレンス2012北海道 札幌Javaコミュニティでの講演資料
Technology
Read more
1 of 51
Download now
Downloaded 116 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
More Related Content
PPTX
MVVM入門
Kazutoshi Urabe
PDF
ConvNetの歴史とResNet亜種、ベストプラクティス
Yusuke Uchida
PDF
Adversarial Examples 分野の動向(敵対的サンプル発表資料)
cvpaper. challenge
PDF
ソフトウェア工学2023 02 上流工程
Toru Tamaki
PDF
MySQLで論理削除と正しく付き合う方法
yoku0825
PPTX
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
ARISE analytics
PDF
[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた-
Deep Learning JP
PDF
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
Deep Learning JP
MVVM入門
Kazutoshi Urabe
ConvNetの歴史とResNet亜種、ベストプラクティス
Yusuke Uchida
Adversarial Examples 分野の動向(敵対的サンプル発表資料)
cvpaper. challenge
ソフトウェア工学2023 02 上流工程
Toru Tamaki
MySQLで論理削除と正しく付き合う方法
yoku0825
【論文読み会】MAUVE: Measuring the Gap Between Neural Text and Human Text using Dive...
ARISE analytics
[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた-
Deep Learning JP
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
Deep Learning JP
What's hot
(20)
PDF
Adversarial Examples 分野の動向(メタサーベイ追加版)
cvpaper. challenge
PPTX
【論文読み会】Autoregressive Diffusion Models.pptx
ARISE analytics
PDF
私にとってのテスト
Takuto Wada
PDF
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
Takumi Ohkuma
PDF
DockerとDocker Hubの操作と概念
Masahito Zembutsu
PPTX
概念モデリング再入門 + DDD
Hiroshima JUG
PDF
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
PDF
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
aha_oretama
PDF
動画認識・キャプショニングの潮流 (CVPR 2018 完全読破チャレンジ報告会)
cvpaper. challenge
PDF
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Amazon Web Services Japan
PPTX
Learning to summarize from human feedback
harmonylab
PDF
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
PPTX
視覚と対話の融合研究
Yoshitaka Ushiku
PDF
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
PDF
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
Deep Learning JP
PPTX
G社のNMT論文を読んでみた
Toshiaki Nakazawa
PDF
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
Preferred Networks
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
PPTX
C# 8.0 null許容参照型
信之 岩永
PDF
deep dive distributed tracing
Takayoshi Tanaka
Adversarial Examples 分野の動向(メタサーベイ追加版)
cvpaper. challenge
【論文読み会】Autoregressive Diffusion Models.pptx
ARISE analytics
私にとってのテスト
Takuto Wada
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
Takumi Ohkuma
DockerとDocker Hubの操作と概念
Masahito Zembutsu
概念モデリング再入門 + DDD
Hiroshima JUG
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
aha_oretama
動画認識・キャプショニングの潮流 (CVPR 2018 完全読破チャレンジ報告会)
cvpaper. challenge
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Amazon Web Services Japan
Learning to summarize from human feedback
harmonylab
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
視覚と対話の融合研究
Yoshitaka Ushiku
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
Deep Learning JP
G社のNMT論文を読んでみた
Toshiaki Nakazawa
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
Preferred Networks
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
C# 8.0 null許容参照型
信之 岩永
deep dive distributed tracing
Takayoshi Tanaka
Ad
Viewers also liked
(16)
PDF
モックライブラリを使ってきちんとユニットテストする #Objective-C
Shoichi Matsuda
PDF
第4回勉強会 単体テストのすすめ
hakoika-itwg
PPTX
Team Foundation Server 2015 Update 2.1アップグレード 手順書~ Team Foundation Server 2...
Masaki Takeda
PPTX
Team Foundation Server 2015 Update 1インストール 手順書
Masaki Takeda
PDF
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
PDF
SSMでマネージドEC2 #reinvent #cmdevio
Shuji Watanabe
PPTX
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
Yusuke Hosonuma
PPTX
もう怖くない!Team Foundation Server 2015 Update 1 ワークアイテム管理とテンプレートのカスタマイズ 概要
Masaki Takeda
PDF
テスト駆動開発のはじめ方
Shuji Watanabe
PPTX
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Masaki Takeda
PPTX
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
Masaki Takeda
PPTX
Team Foundation Server /Visual Studio Team Services 手順書
Masaki Takeda
PPTX
Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...
Masaki Takeda
PPTX
Visual Studio とTeam Foundation Server /Visual Studio Team Services で実現するビル...
Masaki Takeda
PDF
Nds#24 単体テスト
Kazumune Katagiri
PPTX
Team Foundation Server 2015 によるテスト工数削減
Masaki Takeda
モックライブラリを使ってきちんとユニットテストする #Objective-C
Shoichi Matsuda
第4回勉強会 単体テストのすすめ
hakoika-itwg
Team Foundation Server 2015 Update 2.1アップグレード 手順書~ Team Foundation Server 2...
Masaki Takeda
Team Foundation Server 2015 Update 1インストール 手順書
Masaki Takeda
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
SSMでマネージドEC2 #reinvent #cmdevio
Shuji Watanabe
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
Yusuke Hosonuma
もう怖くない!Team Foundation Server 2015 Update 1 ワークアイテム管理とテンプレートのカスタマイズ 概要
Masaki Takeda
テスト駆動開発のはじめ方
Shuji Watanabe
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Masaki Takeda
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
Masaki Takeda
Team Foundation Server /Visual Studio Team Services 手順書
Masaki Takeda
Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...
Masaki Takeda
Visual Studio とTeam Foundation Server /Visual Studio Team Services で実現するビル...
Masaki Takeda
Nds#24 単体テスト
Kazumune Katagiri
Team Foundation Server 2015 によるテスト工数削減
Masaki Takeda
Ad
Similar to JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
(20)
KEY
テストコードのリファクタリング
Shuji Watanabe
PDF
SGT2013 技術トークス「アジャイルテスティング」
yasuohosotani
PDF
アジャイル×テスト開発を考える
yasuohosotani
PDF
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
KEY
テストとの上手な付き合い方
Akira Suenami
KEY
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
PDF
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
PPTX
Continuous delivery chapter4
favril1
PDF
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
PPTX
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
Kotaro Ogino
PDF
アジャイルテストを、壮絶に、考える。
Dai FUJIHARA
PDF
テストを分類してみよう!
Kenji Okumura
PDF
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
PDF
ITS fidel
Fidel Softech P. Ltd
PDF
Gui自動テストツール基本
Tsuyoshi Yumoto
PPT
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
PPTX
TABOK Skill Category2解説
Kinji Akemine
PPTX
JaSST'16 Tokyo モバイルセッション
mirer
PDF
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
テストコードのリファクタリング
Shuji Watanabe
SGT2013 技術トークス「アジャイルテスティング」
yasuohosotani
アジャイル×テスト開発を考える
yasuohosotani
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
テストとの上手な付き合い方
Akira Suenami
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
ぼくのかんがえた iOSテスト戦略
Naoki Umehara
Continuous delivery chapter4
favril1
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
Kotaro Ogino
アジャイルテストを、壮絶に、考える。
Dai FUJIHARA
テストを分類してみよう!
Kenji Okumura
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
ITS fidel
Fidel Softech P. Ltd
Gui自動テストツール基本
Tsuyoshi Yumoto
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
TABOK Skill Category2解説
Kinji Akemine
JaSST'16 Tokyo モバイルセッション
mirer
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
More from Shuji Watanabe
(20)
PDF
Serverless - Developers.IO 2019
Shuji Watanabe
PDF
Ansible ハンズオン on AWS - DevelopersIO 2017
Shuji Watanabe
PDF
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
Shuji Watanabe
PPTX
ELBの概要と勘所
Shuji Watanabe
PPTX
AWSによるWebサイト構築と運用 - concrete5 編 -
Shuji Watanabe
PDF
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Shuji Watanabe
PDF
CloudSearchによる全文検索 - CM:道 2014/08/01
Shuji Watanabe
PDF
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
PDF
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Shuji Watanabe
PDF
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
Shuji Watanabe
PDF
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
Shuji Watanabe
PDF
テスト駆動開発へようこそ
Shuji Watanabe
PDF
ユースケースからテスト駆動開発へ
Shuji Watanabe
KEY
テスト駆動開発入門
Shuji Watanabe
KEY
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
KEY
アジャイルテスティング
Shuji Watanabe
PDF
テストリストの見つけ方
Shuji Watanabe
PDF
TDDをはじめよう
Shuji Watanabe
KEY
Jenkins導入事例
Shuji Watanabe
KEY
ソフトウェア開発の3本柱
Shuji Watanabe
Serverless - Developers.IO 2019
Shuji Watanabe
Ansible ハンズオン on AWS - DevelopersIO 2017
Shuji Watanabe
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
Shuji Watanabe
ELBの概要と勘所
Shuji Watanabe
AWSによるWebサイト構築と運用 - concrete5 編 -
Shuji Watanabe
Cloud FormationによるBlue-Green Deployment - Dev io mtup11 003
Shuji Watanabe
CloudSearchによる全文検索 - CM:道 2014/08/01
Shuji Watanabe
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Shuji Watanabe
s3+cloud frontによる静的コンテンツ配信 - Sphinx編 #cmdevio
Shuji Watanabe
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
Shuji Watanabe
テスト駆動開発へようこそ
Shuji Watanabe
ユースケースからテスト駆動開発へ
Shuji Watanabe
テスト駆動開発入門
Shuji Watanabe
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
アジャイルテスティング
Shuji Watanabe
テストリストの見つけ方
Shuji Watanabe
TDDをはじめよう
Shuji Watanabe
Jenkins導入事例
Shuji Watanabe
ソフトウェア開発の3本柱
Shuji Watanabe
Recently uploaded
(11)
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Jun MITANI
PDF
[email protected]
Matsushita Laboratory
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ayachika Kitazaki
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Kannabi1
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Ko Jikawa
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
Hiroshi SHIBATA
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Jun MITANI
[email protected]
Matsushita Laboratory
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ayachika Kitazaki
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Kannabi1
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Ko Jikawa
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Takuya Minagawa
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
Working as an OSS Developer at Ruby Association Activity Report 2025
Hiroshi SHIBATA
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
1.
実践JUnit xUnitTestPatternsから学ぶユニットテスト
2012.06.16 OSC 2012 北海道 Shuji Watanabe (@shuji_w6e) 1
2.
本日の内容
3.
本日の内容
ユニットテストの目的
4.
本日の内容
ユニットテストの目的 ユニットテストの実践
5.
本日の内容
ユニットテストの目的 ユニットテストの実践 ユニットテストの問題
6.
SHUJI Watanabe Java デベロッパー
要件定義からテストまで全領域対応 Blog「やさしいデスマーチ」 札幌Javaコミュニティ Java, Groovy, JavaFX, MongoDB TDD, ユースケース駆動開発, テスト
7.
WEB+DB PRESS vol.69 JUnit実践入門
カスタムMatcher パラメータ化テスト テストの構造化 カスタムRule Cucumebr-junit
8.
XUnit Test Patterns
http://xunitpatterns.com/ Webで読めます(英語)
9.
ユニットテストの目的
10.
テストが
必要なワケ http://www.flickr.com/photos/essecento/4297955162/
11.
スキル不足 仕様変更
経験不足 複雑な要件 不安 http://www.flickr.com/photos/yopse/3772030400/
12.
不完全な人間
http://www.flickr.com/photos/sharynmorrow/3948100/
13.
ユニットテストとは? ソフトウェアを構成する最小部品のテスト 主にクラスやメソッドが対象 対象が期待される振る舞いをするかを検証
14.
テストの4象限モデル
ビジネス面 手動 機能テスト 受け入れテスト 製品を批評 チームを支援 ストーリーテスト ユーザビリティテスト 負荷テスト ユニットテスト パフォーマンステスト 自動 技術面
15.
テストの4象限モデル
ビジネス面 手動 機能テスト 受け入れテスト 製品を批評 チームを支援 ストーリーテスト ユーザビリティテスト 負荷テスト ユニットテスト パフォーマンステスト 自動 技術面
16.
テストの4象限モデル
ビジネス面 手動 機能テスト 受け入れテスト 製品を批評 チームを支援 ストーリーテスト ユーザビリティテスト 負荷テスト ユニットテスト パフォーマンステスト 自動 技術面
17.
チームを支援するテスト 自分のコードへの自信 積極的なリファクタリング 安心できるリリース
18.
技術面のテスト プログラマが行う プロダクションコードの作成を支援する ビジネス的価値 < 技術的負債の低減
19.
ユニットテストの特徴 プログラマが行い、 開発チームを支援し、 技術面に属し、 自動化が可能。
20.
セーフティネット
http://www.flickr.com/photos/32010000@N08/2987901256/
22.
品質とユニットテスト ユニットテストで直接の品質はあがらない 品質を高めるにはビジネス面のテストが必要 要件を満たしているか?(受け入れテスト) 使いやすいか?(ユーザビリティテスト) ユニットテストにより技術的負債が減る 変化や追加要求に強くなる
23.
ユニットテストの実践
24.
テストケースとは? テスト対象(sut: System Under
Test)に 特定の操作を行い、 実測値(Actual Value)が 期待値(Expected Value)となることを 検証(Verify)する
25.
テストデータのサンプリング 「完璧なテスト」はできない 少ない入力値で効率良くテストを行う 様々なテスト技法 境界値分析 同値クラス ペア構成テスト
26.
テストケースの条件 再現性がある 曖昧さがない 自動化されたテスト(Automated Test)
27.
4フェイズ テスト 初期化処理(SetUp) 実行(Exercise)
@Test public void test() { 検証(Verify) // SetUp // Exercise 後処理(TearDown) // Verify // TearDown }
28.
アサーション アサーションとは「こうなる」という表明 assertThat(actual, is(expected));
static importされたメソッド 自然言語風の記述 assert that actual is expected 変数名(actual, expected)
29.
Matcher API JUnit4の機能
一致する条件を定義したオブジェクト assertThat(actual, is(expected)); isはIsオブジェクトを返す Isはequalsを使った一致を行うMatcher 他にも多くのMatcherがある
30.
リファクタリング ユニットテストの主目的はリファクタリング 技術的負債を蓄積させない 安心してプロダクションコードを修正できる 内部実装に依存するテストは避けること
31.
ユニットテストと設計 ユニットテストはサンプルコード 自分が最初のユーザー(Eat your own
dog food) APIが使いやすいかをテストする テストできないAPIは再設計する
32.
例)計算機クラス public class Calculator
{ // 割り算を行うメソッド public int divide(int x, int y) { return x / y; } }
33.
例)テストコード @Test public void test()
{ // SetUp Calculator sut = new Calculator(); float expected = 1.5; // Exercise float actual = sut.divide(6, 4); // Verify assertThat(actual, is(expected)); }
34.
例)APIの設計ミス public class Calculator
{ // 割り算を行うメソッド public float divide(float x, float y) { return x / y; } }
35.
API設計とユニットテスト テストコードでAPI設計を検証出来る 期待値が検証出来ないAPI 使いにくい/解りにくいAPI テストコードを意識してAPIを設計する 突き詰めるとテスト駆動開発(TDD)
テストを先に書く(テストファースト)
36.
TDDのサイクル
1.設計する 5.リファクタリング Heuristics 2.テストを書く 4.テストを成功させる 3.コードを書く
37.
ドキュメントとしてのテスト テストコードは動作するドキュメント 具体的なサンプルコード 具体的な入力値と期待値 テスト成功による保証 JavaDocや仕様書より正確なドキュメント
38.
ユニットテストの問題
39.
不安定なテスト テスト結果が不定 ランダム性やシステム時間に依存したテスト 環境に依存したテスト テスト結果が一定でないと信頼できない オオカミ少年問題 常にすべてのテストが成功することを維持
40.
脆いテスト 少しの変更で多くのテストに影響する 疎結合になっていない データの影響範囲が大きい インターフェイス(API)の設計が甘い いずれもテストのメンテナンスコストを増大
41.
増えるテストコード 重複 DRY原則(Don t Repeat
Yourself) やり過ぎると可読性が落ちる テストはテストケースで独立すべき ネストしたクラスの利用(Enclosed) パラメータ化テスト
42.
Enclosedテストクラス テストクラスの構造化 テストをコンテキスト(文脈)で整理 @RunWiht(Enclosed.class) public
void ArrayListTest { public static class 初期状態のとき { @Test public void test() {} } public static class 要素が1つのとき { @Test public void test() {} } }
43.
Enclosedテストクラス テストクラスの構造化 テストをコンテキスト(文脈)で整理 @RunWiht(Enclosed.class) public
void ArrayListTest { public static class 初期状態のとき { @Test public void test() {} } public static class 要素が1つのとき { @Test public void test() {} } }
44.
パラメータ化テスト テストデータとテストメソッドを分離 @RunWiht(Theories.class) public void
CalculatorTest { @DataPoints public static Param[] PARAMS = { new Param(3, 4, 12), new Param(1, 5, 5), .... }; @Theory public void divideのテスト(Param p) { // } }
45.
パラメータ化テスト テストデータとテストメソッドを分離 @RunWiht(Theories.class) public void
CalculatorTest { @DataPoints public static Param[] PARAMS = { new Param(3, 4, 12), new Param(1, 5, 5), .... }; @Theory public void divideのテスト(Param p) { // } }
46.
詳しくはWEB+DB vol.69で JUnit実践入門 カスタムMatcher
パラメータ化テスト テストの構造化 カスタムRule Cucumebr-junit
47.
テストしにくいオブジェクト システム時間や外部API モックやスタブの活用 多用は禁物 内部実装に依存しないように注意して使う mockito, EasyMock
48.
まとめ
49.
ユニットテストを学ぼう 目的は開発の支援 基本となる「型」を習得(4フェイズテスト) テスト技法を学び効率良くサンプリング パターンを学ぶ API設計とテストは密な関係(TDD) テスティングフレームワークを活用する
50.
ユニットテストを超えて... 継続的インテグレーション(テスト) テストによる実行網羅率(カバレッジ) テスト駆動開発 自動化された受け入れテスト 振る舞い駆動開発 探索的テスト
51.
おしまい
Editor's Notes
#2:
\n
#3:
\n
#4:
\n
#5:
\n
#6:
\n
#7:
\n
#8:
\n
#9:
\n
#10:
\n
#11:
\n
#12:
\n
#13:
\n
#14:
\n
#15:
\n
#16:
\n
#17:
\n
#18:
\n
#19:
\n
#20:
\n
#21:
\n
#22:
\n
#23:
\n
#24:
\n
#25:
\n
#26:
\n
#27:
\n
#28:
\n
#29:
\n
#30:
\n
#31:
\n
#32:
\n
#33:
\n
#34:
\n
#35:
\n
#36:
\n
#37:
\n
#38:
\n
#39:
\n
#40:
\n
#41:
\n
#42:
\n
#43:
\n
#44:
\n
#45:
\n
#46:
\n
#47:
\n
#48:
\n
Download