SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
JUnit実践⼊入⾨門
         写経・実践会  in  横浜  #3
             2013/02/02(⼟土)  at  横浜タネマキ



                               @shinyaa31

13年2月3日日曜日                                  1
横浜タネマキなう!  #junitbook




             2
13年2月3日日曜日                2
『JUnit実践⼊入⾨門』
                                書籍名:
                                JUnit実践入門 ~体系的に学ぶユニットテストの技法
                                出版社:技術評論社
                                発売日:2012/11/21
                                ボリューム:480ページ
                                著者:渡辺 修司(TwitterID:@shuji_w6e)




  Javaのテスティングフレームワークとして事実上のデファクトスタンダードの地位を占めているJUnitは、
  なにぶん長い歴史を持っていますので、触れたことのある人は膨大な数に上ります。
  しかし、日本語のまとまった情報は意外と少なく、本家JUnitが進化するに従って経年劣化を
  起こしてしまっているというのが現状です。


  そのような状況が変わります。渡辺さんの「JUnit便り」が札幌から全国へ届く日がやってきたのです。


  テスト駆動開発者 和田卓人 (※書籍「推薦のことば」より一部抜粋)



13年2月3日日曜日                                                       3
横浜タネマキ




13年2月3日日曜日    4
本⽇日のタイムテーブル
 15:00  開始・諸説明・アイスブレイク等(15分)
 15:15  対象範囲の写経・実践・ディスカッション等(90分)
         ※第11章  テストダブル
               (黙読5分〜~写経ディスカッション25分)×3を⽬目安に
 16:45  フリータイム(115分)
         ※LTを途中で挟む予定
 18:30  ふりかえり、次回予定調整等  (30分)
 19:00  撤収




13年2月3日日曜日                                    5
今回の対象範囲
 Part  3  ユニットテストの活⽤用と実践
   第11章  テストダブル
   • 11.1  テスタビリティを⾼高めるリファクタリング
   • 11.2  テストダブルとは?
   • 11.3  Mockitoによるモックオブジェクト




13年2月3日日曜日                        6
テストダブル
  テストダブル (Test Double) とは、ソフトウェアテストにおいて、テスト対象が依存しているコンポーネントを置き換
  える代用品のこと。ダブルは代役、影武者を意味する。

  テストを実行するには、テスト対象のシステム (SUT; System Under Test) に加えて、テスト対象が依存するコンポー
  ネント (DOC; Depend-On Component) が必要になる。しかし、依存コンポーネントは、常に利用できるとは限らな
  い。依存コンポーネントがテスト環境で利用できない理由には、次のようなものが挙げられる。

   •   入手できない。
   •   テストで使いたい結果を返さない。
   •   実行に時間がかかるなどの、望ましくない副作用がある。
  こういった問題を回避するには、依存コンポーネントを、テスト用のコンポーネントと入れ替えるテクニックが利用
  できる。この代用のコンポーネントを、テストダブルと呼ぶ。




                          http://ja.wikipedia.org/wiki/テストダブル
13年2月3日日曜日                                                             7
mockito  ....モック伊藤?




              http://ja.wikipedia.org/wiki/川⼝口浩
13年2月3日日曜日                                        8
モック伊藤とは




             http://togetter.com/li/422376
13年2月3日日曜日                                   9
アイスブレイク
   ・書籍を持って来た?
   ・書籍を読んで来た?
   ・書籍対象範囲の写経を済ませた?




13年2月3日日曜日            10
アイスブレイク
   ・TDD、ペアプロ経験等
    職場でバリバリ実践
    業務外で個人的に
   ・本日準備環境
    OS:Windows/Mac/その他
    言語:Java/Groovy/その他
    IDE:Eclipse/IntelliJ IDEA/その他


13年2月3日日曜日                          11
アイスブレイク
   ・実は私、モック伊藤なんです...
   ・いや、私こそがモック伊藤だ
   ・軽く自己紹介、意気込みなどを




13年2月3日日曜日             12
mockito
     Mockito is a mocking framework that tastes really good. It lets you write beautiful
     tests with clean & simple API. Mockito doesn't give you hangover because the
     tests are very readable and they produce clean verification errors. Read more
     about features & motivations.

     "We decided during the main conference that we should use JUnit 4 and Mockito
     because we think they are the future of TDD and mocking in Java" - Dan North,
     the originator of BDD



                                 http://code.google.com/p/mockito/




13年2月3日日曜日                                                                                 13
写経・ディスカッション
 Part  3  ユニットテストの活⽤用と実践
   第11章  テストダブル
   • 11.1  テスタビリティを⾼高めるリファクタリング
   • 11.2  テストダブルとは?
   • 11.3  Mockitoによるモックオブジェクト




13年2月3日日曜日                        14
写経・ディスカッション
 11.1  テスタビリティを⾼高めるリファクタリング
 • テスタビリティとは?
 • リファクタリングとは?
 • メソッドの抽出
 • 委譲オブジェクトの抽出




13年2月3日日曜日                    15
写経・ディスカッション
 11.2  テストダブルとは?
   • スタブ  -‐‑‒  依存オブジェクトに予測可能な振る舞いをさせる
   • モック  -‐‑‒  依存オブジェクトの呼び出しを検証する
   • スパイ  -‐‑‒  依存オブジェクトの呼び出しを監視する




13年2月3日日曜日                               16
写経・ディスカッション
 11.3  Mockitoによるモックオブジェクト
   •   Mockitoとは?
   •   Mockitoを利利⽤用する準備
   •   モックオブジェクトの作成
   •   スタブメソッドの戻り値
   •   スタブメソッドの定義
   •   スタブメソッドの検証
   •   部分的なモックオブジェクト
   •   スパイオブジェクト




13年2月3日日曜日                   17
写経・ディスカッション
 ※その他モック関連ライブラリ等
   •   jMockit
   •   EasyMock
   •   MockRunner
   •   GroovyにおけるMock




13年2月3日日曜日              18
Lightning
     Talk
13年2月3日日曜日       19
撤収!
13年2月3日日曜日    20

Weitere ähnliche Inhalte

Was ist angesagt?

MobProgramming at ヴァル研究所 - 進行
MobProgramming at ヴァル研究所 - 進行MobProgramming at ヴァル研究所 - 進行
MobProgramming at ヴァル研究所 - 進行Toshiyuki Ando
 
リリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべてリリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべてHiroshi Chonan
 
Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。KyutatsuNishiura
 
深層強化学習でマルチエージェント学習(後篇)
深層強化学習でマルチエージェント学習(後篇)深層強化学習でマルチエージェント学習(後篇)
深層強化学習でマルチエージェント学習(後篇)Junichiro Katsuta
 
We are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python ClubWe are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python ClubTakeshi Akutsu
 
プロ生ちゃんをひろっちゃう!
プロ生ちゃんをひろっちゃう!プロ生ちゃんをひろっちゃう!
プロ生ちゃんをひろっちゃう!Kouji Matsui
 
Ubuntuの最新情報 / Ubuntu 15.10 Wily Werewolf
Ubuntuの最新情報 / Ubuntu 15.10 Wily WerewolfUbuntuの最新情報 / Ubuntu 15.10 Wily Werewolf
Ubuntuの最新情報 / Ubuntu 15.10 Wily WerewolfHiroshi Chonan
 
Pythonのプロファイリング
PythonのプロファイリングPythonのプロファイリング
Pythonのプロファイリングysakaguchi
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5Takeshi Akutsu
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonYoshitaka Shiono
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Masayuki Nii
 

Was ist angesagt? (20)

MobProgramming at ヴァル研究所 - 進行
MobProgramming at ヴァル研究所 - 進行MobProgramming at ヴァル研究所 - 進行
MobProgramming at ヴァル研究所 - 進行
 
T4使ってみた
T4使ってみたT4使ってみた
T4使ってみた
 
リリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべてリリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべて
 
Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。
 
深層強化学習でマルチエージェント学習(後篇)
深層強化学習でマルチエージェント学習(後篇)深層強化学習でマルチエージェント学習(後篇)
深層強化学習でマルチエージェント学習(後篇)
 
We are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python ClubWe are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python Club
 
CgiSecure
CgiSecureCgiSecure
CgiSecure
 
S28 t0 introduction
S28 t0 introductionS28 t0 introduction
S28 t0 introduction
 
プロ生ちゃんをひろっちゃう!
プロ生ちゃんをひろっちゃう!プロ生ちゃんをひろっちゃう!
プロ生ちゃんをひろっちゃう!
 
Ubuntuの最新情報 / Ubuntu 15.10 Wily Werewolf
Ubuntuの最新情報 / Ubuntu 15.10 Wily WerewolfUbuntuの最新情報 / Ubuntu 15.10 Wily Werewolf
Ubuntuの最新情報 / Ubuntu 15.10 Wily Werewolf
 
Introduction
IntroductionIntroduction
Introduction
 
Pythonのプロファイリング
PythonのプロファイリングPythonのプロファイリング
Pythonのプロファイリング
 
S15 t0 introduction
S15 t0 introductionS15 t0 introduction
S15 t0 introduction
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
 
S01 t0 orientation
S01 t0 orientationS01 t0 orientation
S01 t0 orientation
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi python
 
S05_T0_orientation
S05_T0_orientationS05_T0_orientation
S05_T0_orientation
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装
 
S03 t0 get_started
S03 t0 get_startedS03 t0 get_started
S03 t0 get_started
 
Gnomeとdogtai
GnomeとdogtaiGnomeとdogtai
Gnomeとdogtai
 

Ähnlich wie 『JUnit実践入門』写経・実践会 in 横浜 #3

『JUnit実践入門』写経・実践会 in 横浜 #4
『JUnit実践入門』写経・実践会 in 横浜 #4『JUnit実践入門』写経・実践会 in 横浜 #4
『JUnit実践入門』写経・実践会 in 横浜 #4shinyaa31
 
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会ltJava one 2013 sf 報告会lt
Java one 2013 sf 報告会lttorutk
 
LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)You&I
 
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究Yuichiro Saito
 
Androidで使えるモックフレームワーク
Androidで使えるモックフレームワークAndroidで使えるモックフレームワーク
Androidで使えるモックフレームワークKoji Hasegawa
 
LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)You&I
 
上級ユーザビリティテスト手法
上級ユーザビリティテスト手法上級ユーザビリティテスト手法
上級ユーザビリティテスト手法Tarumoto Tetsuya
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方Shuji Watanabe
 
Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携Norihisa Nagano
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessaryHiroshi Maekawa
 
ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)Kazunori Sakamoto
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしyamanekko
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Masanori Satoh
 
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -Masahito Zembutsu
 
20101130 南東京iphone開発3
20101130 南東京iphone開発320101130 南東京iphone開発3
20101130 南東京iphone開発3Masaki Kase
 
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピングPOStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング満徳 関
 
コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようMatsuoka Hiromitsu
 
POStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピングPOStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピング満徳 関
 
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山takepu
 

Ähnlich wie 『JUnit実践入門』写経・実践会 in 横浜 #3 (20)

『JUnit実践入門』写経・実践会 in 横浜 #4
『JUnit実践入門』写経・実践会 in 横浜 #4『JUnit実践入門』写経・実践会 in 横浜 #4
『JUnit実践入門』写経・実践会 in 横浜 #4
 
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会ltJava one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
 
LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)
 
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
 
Code injectiontool
Code injectiontoolCode injectiontool
Code injectiontool
 
Androidで使えるモックフレームワーク
Androidで使えるモックフレームワークAndroidで使えるモックフレームワーク
Androidで使えるモックフレームワーク
 
LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)
 
上級ユーザビリティテスト手法
上級ユーザビリティテスト手法上級ユーザビリティテスト手法
上級ユーザビリティテスト手法
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
 
Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessary
 
ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
 
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
 
20101130 南東京iphone開発3
20101130 南東京iphone開発320101130 南東京iphone開発3
20101130 南東京iphone開発3
 
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピングPOStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
POStudy Day 2012 in Okinawa - ユーザーストーリーマッピング
 
コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げよう
 
POStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピングPOStudy Conference 2012 - ユーザーストーリーマッピング
POStudy Conference 2012 - ユーザーストーリーマッピング
 
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Kürzlich hochgeladen (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

『JUnit実践入門』写経・実践会 in 横浜 #3

  • 1. JUnit実践⼊入⾨門 写経・実践会  in  横浜  #3 2013/02/02(⼟土)  at  横浜タネマキ @shinyaa31 13年2月3日日曜日 1
  • 2. 横浜タネマキなう!  #junitbook 2 13年2月3日日曜日 2
  • 3. 『JUnit実践⼊入⾨門』 書籍名: JUnit実践入門 ~体系的に学ぶユニットテストの技法 出版社:技術評論社 発売日:2012/11/21 ボリューム:480ページ 著者:渡辺 修司(TwitterID:@shuji_w6e) Javaのテスティングフレームワークとして事実上のデファクトスタンダードの地位を占めているJUnitは、 なにぶん長い歴史を持っていますので、触れたことのある人は膨大な数に上ります。 しかし、日本語のまとまった情報は意外と少なく、本家JUnitが進化するに従って経年劣化を 起こしてしまっているというのが現状です。 そのような状況が変わります。渡辺さんの「JUnit便り」が札幌から全国へ届く日がやってきたのです。 テスト駆動開発者 和田卓人 (※書籍「推薦のことば」より一部抜粋) 13年2月3日日曜日 3
  • 5. 本⽇日のタイムテーブル 15:00  開始・諸説明・アイスブレイク等(15分) 15:15  対象範囲の写経・実践・ディスカッション等(90分)         ※第11章  テストダブル               (黙読5分〜~写経ディスカッション25分)×3を⽬目安に 16:45  フリータイム(115分)         ※LTを途中で挟む予定 18:30  ふりかえり、次回予定調整等  (30分) 19:00  撤収 13年2月3日日曜日 5
  • 6. 今回の対象範囲 Part  3  ユニットテストの活⽤用と実践  第11章  テストダブル • 11.1  テスタビリティを⾼高めるリファクタリング • 11.2  テストダブルとは? • 11.3  Mockitoによるモックオブジェクト 13年2月3日日曜日 6
  • 7. テストダブル テストダブル (Test Double) とは、ソフトウェアテストにおいて、テスト対象が依存しているコンポーネントを置き換 える代用品のこと。ダブルは代役、影武者を意味する。 テストを実行するには、テスト対象のシステム (SUT; System Under Test) に加えて、テスト対象が依存するコンポー ネント (DOC; Depend-On Component) が必要になる。しかし、依存コンポーネントは、常に利用できるとは限らな い。依存コンポーネントがテスト環境で利用できない理由には、次のようなものが挙げられる。 • 入手できない。 • テストで使いたい結果を返さない。 • 実行に時間がかかるなどの、望ましくない副作用がある。 こういった問題を回避するには、依存コンポーネントを、テスト用のコンポーネントと入れ替えるテクニックが利用 できる。この代用のコンポーネントを、テストダブルと呼ぶ。 http://ja.wikipedia.org/wiki/テストダブル 13年2月3日日曜日 7
  • 8. mockito  ....モック伊藤? http://ja.wikipedia.org/wiki/川⼝口浩 13年2月3日日曜日 8
  • 9. モック伊藤とは http://togetter.com/li/422376 13年2月3日日曜日 9
  • 10. アイスブレイク ・書籍を持って来た? ・書籍を読んで来た? ・書籍対象範囲の写経を済ませた? 13年2月3日日曜日 10
  • 11. アイスブレイク ・TDD、ペアプロ経験等  職場でバリバリ実践  業務外で個人的に ・本日準備環境  OS:Windows/Mac/その他  言語:Java/Groovy/その他  IDE:Eclipse/IntelliJ IDEA/その他 13年2月3日日曜日 11
  • 12. アイスブレイク ・実は私、モック伊藤なんです... ・いや、私こそがモック伊藤だ ・軽く自己紹介、意気込みなどを 13年2月3日日曜日 12
  • 13. mockito Mockito is a mocking framework that tastes really good. It lets you write beautiful tests with clean & simple API. Mockito doesn't give you hangover because the tests are very readable and they produce clean verification errors. Read more about features & motivations. "We decided during the main conference that we should use JUnit 4 and Mockito because we think they are the future of TDD and mocking in Java" - Dan North, the originator of BDD http://code.google.com/p/mockito/ 13年2月3日日曜日 13
  • 14. 写経・ディスカッション Part  3  ユニットテストの活⽤用と実践  第11章  テストダブル • 11.1  テスタビリティを⾼高めるリファクタリング • 11.2  テストダブルとは? • 11.3  Mockitoによるモックオブジェクト 13年2月3日日曜日 14
  • 15. 写経・ディスカッション 11.1  テスタビリティを⾼高めるリファクタリング • テスタビリティとは? • リファクタリングとは? • メソッドの抽出 • 委譲オブジェクトの抽出 13年2月3日日曜日 15
  • 16. 写経・ディスカッション 11.2  テストダブルとは? • スタブ  -‐‑‒  依存オブジェクトに予測可能な振る舞いをさせる • モック  -‐‑‒  依存オブジェクトの呼び出しを検証する • スパイ  -‐‑‒  依存オブジェクトの呼び出しを監視する 13年2月3日日曜日 16
  • 17. 写経・ディスカッション 11.3  Mockitoによるモックオブジェクト • Mockitoとは? • Mockitoを利利⽤用する準備 • モックオブジェクトの作成 • スタブメソッドの戻り値 • スタブメソッドの定義 • スタブメソッドの検証 • 部分的なモックオブジェクト • スパイオブジェクト 13年2月3日日曜日 17
  • 18. 写経・ディスカッション ※その他モック関連ライブラリ等 • jMockit • EasyMock • MockRunner • GroovyにおけるMock 13年2月3日日曜日 18
  • 19. Lightning Talk 13年2月3日日曜日 19