Your SlideShare is downloading. ×
0
TDD Boot Camp Tokyo
for C++ 2014-01 デモ
@imagire
お品書き
• お題説明
• 環境説明
• 作業手順
お題説明
• FizzBuzz

– 1から100までの数字を数える
•
•
•
•

3でも5でも割り切れる数字の際は “Fizz Buzz”
3で割り切れる数字の際は “Fizz”
5で割り切れる数字の際は “Buzz”
それ以外は数字をそ...
Microsoft 単体テストフレームワーク
アプリケーション

.exe
Microsoft 単体テストフレームワーク
アプリケーション

呼び出し

.exe

コアロジック

応答

.lib

呼び出し

単体テスト
プロジェクト
Visual Studio から
呼べる!
.dll

応答

テスト対象のクラ...
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
方針の検討
• 最終出力だけを比較するのは不適当そう

– 表示結果 = ” 1, 2, Fizz, 4, …, 98, Fizz, Buzz” ?

• まちがえそうもないところはテスト対象と
しない
– 単純な固定回数の loop のカウン...
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
Win32 コンソール アプリケーションの作成
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
ネイティブ単体テスト プロジェクトの追加

テストっぽいプロジェクト名を付けよう
テスト エクスプローラーを開けてみよう
テストの実行
テストコードを編集してみる

実行されるテストが置かれるクラス
実行されるテスト関数
失敗するテストコードの作成
失敗してみる
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
ライブラリっぽいプロジェクト名を付けよう
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
テストコードを開いた状態でプロパティの設定と選択
共通プロパティで参照の追加
テストプロジェクトの参照にライブラリのプロジェクトを追加
(ライブラリが更新されるとテストのプロジェクトもビルドしなおす)
構成プロパティからインクルードディレクトリの追加

この後で作成するプロジェクトのインクルードフォルダ
ライブラリディレクトリも追加
インクルードディレクトリの作成
その中にヘッダの作成

テストされるクラスの
ヘッダーファイルを置く
最低限の実装を行う
テストが通るのを確認
リファクタリング
(実装コードをcppファイルに書く)

ライブラリプロジェクト
を右クリックしてファイ
ルの追加
ライブラリプロジェクトにもパスを通す
テストプロジェクトと同じパスを追加
コードを書きかえる
テスト結果に変更がないことを確認
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
アプリケーションプロジェクトにも
ライブラリの情報を追加
ライブラリの参照の追加
インクルードディレクトリの追加
ライブラリの追加
リンカーの入力にライブラリを追加
アプリケーションコードの作成
アプリケーションの実行
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
テストコードの追加
テストの失敗を確認
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
テストが通る実装を行う

やりすぎかも?
3の時だけ特別な値を返すような実装を
最初はした方が良いかもね
テストが通ることを確認
アプリケーションも実行
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
テストコードの追加
テストコードの失敗の確認
コードの修正
テストが通ることの確認
アプリケーションも確認
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
テストコードの追加
テストコードの失敗の確認
コードの修正
テストが通ることの確認
アプリケーションも実行
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
コードをきれいにする
テストコードもきれいにする
進め方
•
•
•
•
•
•

アプリケーションを作成
テストプロジェクトを追加
ライブラリのプロジェクトを追加
テストプロジェクトとライブラリを紐づけ
アプリケーションとライブラリを紐づけ
TDDのループを回す
– テストを書く
– テスト...
テストコードの追加
テストコードの失敗の確認
コードの修正
アプリケーションの確認
気になるところはテスト
気になるところまでokなら完了
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
Upcoming SlideShare
Loading in...5
×

TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料

619

Published on

TDD Boot Camp Tokyo for c++ 2014-01 でデモした際の課題(FizzBuzz)とそのためのVisual Studioのプロジェクトの作成方法を記した資料です

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
619
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料"

  1. 1. TDD Boot Camp Tokyo for C++ 2014-01 デモ @imagire
  2. 2. お品書き • お題説明 • 環境説明 • 作業手順
  3. 3. お題説明 • FizzBuzz – 1から100までの数字を数える • • • • 3でも5でも割り切れる数字の際は “Fizz Buzz” 3で割り切れる数字の際は “Fizz” 5で割り切れる数字の際は “Buzz” それ以外は数字をそのまま発言 – 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, …
  4. 4. Microsoft 単体テストフレームワーク アプリケーション .exe
  5. 5. Microsoft 単体テストフレームワーク アプリケーション 呼び出し .exe コアロジック 応答 .lib 呼び出し 単体テスト プロジェクト Visual Studio から 呼べる! .dll 応答 テスト対象のクラスは ライブラリとして呼び 出せる形にしてテスト
  6. 6. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  7. 7. 方針の検討 • 最終出力だけを比較するのは不適当そう – 表示結果 = ” 1, 2, Fizz, 4, …, 98, Fizz, Buzz” ? • まちがえそうもないところはテスト対象と しない – 単純な固定回数の loop のカウントは優先度低 for (int i = 1; i <= 100; i++){ string result = FizzBuzz::Calc(i); cout << result; こんな関数のテストが適当そう }
  8. 8. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  9. 9. Win32 コンソール アプリケーションの作成
  10. 10. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  11. 11. ネイティブ単体テスト プロジェクトの追加 テストっぽいプロジェクト名を付けよう
  12. 12. テスト エクスプローラーを開けてみよう
  13. 13. テストの実行
  14. 14. テストコードを編集してみる 実行されるテストが置かれるクラス 実行されるテスト関数
  15. 15. 失敗するテストコードの作成
  16. 16. 失敗してみる
  17. 17. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  18. 18. ライブラリっぽいプロジェクト名を付けよう
  19. 19. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  20. 20. テストコードを開いた状態でプロパティの設定と選択
  21. 21. 共通プロパティで参照の追加
  22. 22. テストプロジェクトの参照にライブラリのプロジェクトを追加 (ライブラリが更新されるとテストのプロジェクトもビルドしなおす)
  23. 23. 構成プロパティからインクルードディレクトリの追加 この後で作成するプロジェクトのインクルードフォルダ
  24. 24. ライブラリディレクトリも追加
  25. 25. インクルードディレクトリの作成
  26. 26. その中にヘッダの作成 テストされるクラスの ヘッダーファイルを置く
  27. 27. 最低限の実装を行う
  28. 28. テストが通るのを確認
  29. 29. リファクタリング (実装コードをcppファイルに書く) ライブラリプロジェクト を右クリックしてファイ ルの追加
  30. 30. ライブラリプロジェクトにもパスを通す
  31. 31. テストプロジェクトと同じパスを追加
  32. 32. コードを書きかえる
  33. 33. テスト結果に変更がないことを確認
  34. 34. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  35. 35. アプリケーションプロジェクトにも ライブラリの情報を追加
  36. 36. ライブラリの参照の追加
  37. 37. インクルードディレクトリの追加
  38. 38. ライブラリの追加
  39. 39. リンカーの入力にライブラリを追加
  40. 40. アプリケーションコードの作成
  41. 41. アプリケーションの実行
  42. 42. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  43. 43. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  44. 44. テストコードの追加
  45. 45. テストの失敗を確認
  46. 46. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  47. 47. テストが通る実装を行う やりすぎかも? 3の時だけ特別な値を返すような実装を 最初はした方が良いかもね
  48. 48. テストが通ることを確認
  49. 49. アプリケーションも実行
  50. 50. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  51. 51. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  52. 52. テストコードの追加
  53. 53. テストコードの失敗の確認
  54. 54. コードの修正
  55. 55. テストが通ることの確認
  56. 56. アプリケーションも確認
  57. 57. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  58. 58. テストコードの追加
  59. 59. テストコードの失敗の確認
  60. 60. コードの修正
  61. 61. テストが通ることの確認
  62. 62. アプリケーションも実行
  63. 63. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  64. 64. コードをきれいにする
  65. 65. テストコードもきれいにする
  66. 66. 進め方 • • • • • • アプリケーションを作成 テストプロジェクトを追加 ライブラリのプロジェクトを追加 テストプロジェクトとライブラリを紐づけ アプリケーションとライブラリを紐づけ TDDのループを回す – テストを書く – テストが成功するように実装 – リファクタリング
  67. 67. テストコードの追加
  68. 68. テストコードの失敗の確認
  69. 69. コードの修正
  70. 70. アプリケーションの確認
  71. 71. 気になるところはテスト
  72. 72. 気になるところまでokなら完了
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×