What one likes, one will do well 〜好きこそ物の上手なれ〜

寄り道しながらも、最後は昔から好きな物理とプログラミングに戻ってくる。そんな男の思いをつづるブログです。

ケントベックのテスト駆動開発入門を読みました。

はじめに

ケントベックのテスト駆動開発入門を読んだ。3,4年前に読んで今回が2回目。最初に読んだ時も衝撃を受けたが、2回目読むとさらに理解が深まり、ケントベックのすごさが分かった。

今回読んで心に残ったことを記載していく。

テスト駆動開発の基本

テスト駆動開発の基本は、

だと感じた。

テストを素早くパスさせるために、定数を返すなどのコードを書くのだが、それが抵抗感があった。しかしテストコードとコードに同じ定数があるため、重複を取り除くためにリファクタリングを実施する。すると求めているコードになっていく。

前回は理解できていなかったが、今回少し理解できた気がした。

テスト駆動開発のパターン

アサートファーストが「おっ!?」と思った。テストを作成するときにどこから書けばいいのか迷う。まずクラス考えて、メソッドを考えて、引数を考えて、戻り値を考えて、アサートするというように上から順に考えていた。でもアサートファーストということで、アサートから考えるのがよいようだ。オブジェクトから何を得るか。結果から考えることで、テストを書きやすいと感じた。

レッドバーに関するパターン

「パソコンには安価な机。プログラマには良質な椅子。」と言うのはおもしろかった。やはり開発する環境と言うのは大切だと思う。

テストに関するパターン

「1人でプログラミングをしているときは最後のテストを失敗のままにして終える。」と言ういのは、やってみようかと思った。失敗のテストにより前の状態を思いだそうと考えるきっかけができる。

前にたまたまテストが失敗の状態でしばらくコードができないことがあった。失敗のテストのおかげで、前の状態を思い出したことがあったので、1人のプログラミングの時はやってみようと思う。

グリーンバーに関するパターン

仮実装などの話。上記の「テスト駆動開発の基本」でも書いたが、やっと少し理解できた。

xUnitに関するパターン

例外のテストの部分は参考になった。エラーが起きた時は何もせずに、エラーが発生しなかったときはテストを失敗させる。例外のテストは難しいと感じていたので、やってみたい。

デザインパターン

デザインパターンは難しく、まだ全ては理解できない。でも他の書籍を読んだり、実際にコードを書くことで、理解できるパターンが増えてきた。一番重要なのはコードを書くことだと思う。

リファクタリング

マーチンファウラーの「リファクタリング」を読んでいたせいか分かりやすかった。こちらの方がコンパクトにまとまっていて、分かりやすかった。すでにリファクタリングを読んでいたおかげだと思う。

TDDの習得

「途中でどのようにTDDに切り替えるのか」と言うのが興味があった。全部ではなく変更のスコープを決めて切り替える。確かにその通りだと思う。少しずつTDDに切り替えていきたい。

 おわりに

テスト駆動開発入門を2回目読んで本当によかった。さらに理解が深まり、プログラミングへの熱意も高まった。もっとコードを書きたい、テストを書きたいと思った。

実はxUnitの例はまだ読んでいない。それは、エクセルのマクロ用のxUnitを書こうと思っているから。

仕事ではエクセルのマクロなどで少しコードを書くことぐらいしかない。マクロでコードを書くときもテストを書くのだが、自分オリジナルで書いている状態だ。マクロのxUnitも使いたいと思っているが、モジュールなどをたくさん読みこまないといけないようだから躊躇している。

一方でもっとテストをシンプルに綺麗に書きたいと思っているので、勉強もかねて自分でマクロ用のxUnitを実装してテストを書こうと思っている。コンセプトとしては、「読みこむモジュールは1ファイルだけ」だ。完成したら公開したいと思う。

 

テスト駆動開発入門

テスト駆動開発入門

  • 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2003/09
  • メディア: 単行本
  • 購入: 45人 クリック: 1,058回
  • この商品を含むブログ (162件) を見る