16
わんくま同盟 名古屋勉強会 #34 1 VS Community エディションは テストファースト最強 TDD 道場 #22 BluewaterSoft 2015/02/14 biac

わんくま名古屋#34(20150214) TDD道場#22

Embed Size (px)

Citation preview

Page 1: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 1

VS Community エディションは

テストファースト最強

TDD 道場 #22

BluewaterSoft 2015/02/14 biac

Page 2: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 2

スピーカー紹介: biac as 山本康彦

• 宇宙世紀以前の生まれスプートニク1号より3ヶ月ほど前

• 最初は HONDAクルマの設計/研究を10年くらいやってた

• 今は BluewaterSoftを名乗ってアプリ開発とか技術解説記事とか

• 「NUnitの全貌」⇒CodeZine 2012/4

Page 3: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 3

【CM】 C#で始めるテスト駆動開発入門

• CodeZine 連載再開♪

• #08「ユニバーサルWindowsアプリのユニットテスト(前編)」

• #09「ユニバーサルWindowsアプリのユニットテスト(後編)」

• #10「状態を持つクラスをテストファーストする」

Page 4: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 4

TDD = テストファースト + リファクタリング

•テストファースト: RED と GREEN の繰り返し

•リファクタリング: GREEN を維持したまま実装を改善

失敗するはずのユニットテストを1つ書き、失敗することを確認 (=RED)

ユニットテストに通るだけの実装を追加し、成功することを確認 (=GREEN)

Page 5: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 5

TDD 3原則 by Robert C Martin

•ArticleS.UncleBob.TheThreeRulesOfTdd (2005) より。※ 実質は「テスト ファースト 3原則」

1. 失敗するユニットテストを成功させるためにしか、プロダクトコードを書いてはならない。

2. 失敗させるためにしか、ユニットテストを書いてはならない。コンパイルエラーは失敗に数える。

3. ユニットテストを1つだけ成功させる以上に、プロダクトコードを書いてはならない。

Page 6: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 6

TDD MANTRA

• 『Test-Driven Development: By Example』からの引用

• テスト駆動開発において我々は、・自動テストが失敗している場合に限り、新しいコードを書く・重複を取り除く

• OneDrive で公開http://1drv.ms/1uz3Z2P

Page 7: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 7

今年のテーマ

•TDDの半分はテスト ファースト。残り半分は…

リファクタリング(refactoring)

Page 8: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 8

リファクタリング by Martin Fowler

•「リファクタリングとは、コードの外的な振る舞いを変更せずに、内部の構造を作りかえること」http://refactoring.com/

Refactoring is … altering its internal structure

without changing its external behavior.

Page 9: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 9

リファクタリングを学ぶには?

•「リファクタリング ―既存のコードを安全に改善する―」 by Martin Fowlerhttp://amzn.to/1C6rzHL

Page 10: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 10

Visual Studio Community 2013 でテストファースト

でもその前に、今日やるのは…

Page 11: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 11

Visual Studio Community 2013

•無償の Visual Studio

•ライセンス制限アリ (個人利用なら無条件でOK!)詳細は⇒http://www.microsoft.com/ja-jp/dev/products/community.aspx

•Professionalと同等 (VS2015ではExpress廃止)

•ダウンロード http://aka.ms/vscomm2013dl

Page 12: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 12

Express と比べて嬉しいところ (その1)

•サードパーティ製のユニットテスト フレームワークも IDE に統合できる♪ (今日はやらない)

Page 13: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 13

Express と比べて嬉しいところ (その2)

•Alt + F12 が使える!!"Peek Definition" (日本語訳「定義をここに表示」)

※ Peek (のぞき見) するだけじゃなく、編集可能!

ここで Alt + F12 を押すと、すぐ下に Say メソッドのコードが!そして、編集できる!!

Page 14: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 14

Alt + F12 でテストファースト捗る♪

•テストコードと製品コードが一度に編集できる!

Page 15: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 15

Alt + F12 でテストファースト

やってみましょ~

演習タイムいつもの FizzBuzz を VS Community 2013 で

Visual Studio Community エディションはテストファースト最強♪

Page 16: わんくま名古屋#34(20150214) TDD道場#22

わんくま同盟名古屋勉強会 #34 16

ご清聴ありがとうございました