Upgrade to Pro — share decks privately, control downloads, hide ads and more …

I love TDD.

Dassimen
September 04, 2019

I love TDD.

こちらのイベントで発表した資料です
https://engineers.connpass.com/event/141228/

Dassimen

September 04, 2019
Tweet

More Decks by Dassimen

Other Decks in Programming

Transcript

  1. #engineers_lt 2 About Me 脱脂綿 ( @anchor_cable ) 東京都内に住む脱脂綿(=Twitter名)系エンジニア •

    株式会社ゆめみ ◦ サーバーサイドエンジニア • テスト駆動開発歴2ヶ月
  2. #engineers_lt 8 TDDの流れ 動かない 動く 綺 麗 汚 い ①Red:

    動作しないテストを書く ②Green: テストを通すコードを書く ③Refactor: 動きを変えない事をテストしながら 安心してリファクタできる ④次のテストコードを書く
  3. #engineers_lt 9 TDDの流れ 動かない 動く 綺 麗 汚 い ①Red:

    動作しないテストを書く ②Green: テストを通すコードを書く ③Refactor: 動きを変えない事をテストしながら 安心してリファクタできる ④次のテストコードを書く
  4. #engineers_lt 10 TDDの流れ 動かない 動く 綺 麗 汚 い ①Red:

    動作しないテストを書く ②Green: テストを通すコードを書く ③Refactor: 動きを変えない事をテストしながら 安心してリファクタできる ④次のテストコードを書く
  5. #engineers_lt 11 TDDの流れ 動かない 動く 綺 麗 汚 い ①Red:

    動作しないテストを書く ②Green: テストを通すコードを書く ③Refactor: 動きを変えない事をテストしながら 安心してリファクタできる ④次のテストコードを書く
  6. #engineers_lt 12 TDDの流れ 動かない 動く 綺 麗 汚 い ①Red:

    動作しないテストを書く ②Green: テストを通すコードを書く ③Refactor: 動きを変えない事をテストしながら 安心してリファクタできる ④次のテストコードを書く
  7. #engineers_lt 13 TDDの流れサンプル(資料のみ) ex.FizzBuzz 1. 作ろうとしているコードからToDoリストを作る 「1を渡されたら1を返す」 「3を渡されたらFizzを返す」.... 2. ToDoリストの中の1つを選び、これを満たすテストコードを書く

    assertEqual(1,judgeFizzBuzz(1)) 3. テストコードの失敗を確認する(レッド) 4. テストコードを満たすプロダクションコードを書く(グリーン) return 1; 5. コードの重複を排除したり、綺麗にしたりする(リファクタリング) ToDoの粒度は最初は細かくした方 が良いが、確信を持っている部分に 関してはまとめても良い。
  8. #engineers_lt 25 Appendix 書籍:テスト駆動開発 Kent Beck (著), 和田 卓人 (翻訳) https://www.amazon.co.jp/dp/4274217884/ref=cm_sw_r_tw_dp_U_x_BWLBDb7XS8

    DYV (特に付録Cがオススメです!) Qiita:初心者プログラマーの僕が、テスト駆動開発を愛する5つの理由 https://qiita.com/anchor-cable/items/4b7b73bc1a2163ded6b6 (私の書いた記事です...内容が一部重複しています)