本屋へ出かけたところ、書籍「単体テストの考え方/使い方」を見かけました。
単体テストの考え方/使い方 | マイナビブックス
表紙に
- 書名に単体テストと書かれていたこと
- 原著がManning Publications社なこと
とあったため、購入して読むことにしました。
最初、書名から「単体テストに特化して知識を得られそう」という期待を持って読み始めました。
ただ、読み進めていくうちに
など、単体テスト以外の話題にガッツリふれられていることに気づきました。
そのため、読み終わった時の印象は「単体テストを元に、いかにより良い設計とするか」となり、当初の期待以上の内容でした。
各章ごとにまとめページがあったことも理解の手助けとなり、後から振り返りやすくできているように感じました。
また、当然ながらテストに関する各種用語の定義の記載があり、テストまわりの知識を増やせました。
例えば、5章ではテストダブルの種類やそれらの違いなどが記載されています。
ただ、この本だけではテストコードを書けるようになるかというとそれも難しいような気もしました。
そのため、各言語のテスティングフレームワークについて、深掘りしている書籍やWebの記事を合わせて読むと良さそうです。
例えば、自分がよくさわる言語であれば以下のあたりです。
- Everyday Rails - RSpecによるRailsテスト入門 Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle]
- テスト駆動Python 第2版(Brian Okken 株式会社クイープ 株式会社クイープ 安井 力)|翔泳社の本
あとは訳注が多めに用意されており、別途読みたくなる関連資料が多く紹介されていました。
特に、Web記事については翻訳版が存在する場合は翻訳版へのリンクも記載されていたため、ありがたかったです。
個人的に発見だったのは「単体テストをどのように行うべきかについて異なる見解を持つ学派がある」ことであり、学派として
- 古典学派
- ロンドン学派
の2つがあると知ったことでした。
各学派のテストコードが書かれていたので読んだところ、たしかに違いがありました。
過去記事にもある通り、自分は古典学派寄りのテストコードを読んだり書いたりしてきたため、ロンドン学派のテストコードは「こういう書き方もあるんだ」と新鮮な感じでした。
- JUnit実践入門を C# 4.0 + NUnit + RhinoMocks + NSubstitute で書いてみた (一部書けず) - メモ的な思考的な
- 「The Art of Unit Testing, Second Edition with examples in C# 」を読んだ - メモ的な思考的な
そのため、ロンドン学派のテストコードについても知りたくなったため、後日、ロンドン学派の以下の書籍も読んでみようと思いました。
実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる(和智 右桂 和智 右桂 髙木 正弘 髙木 正弘 Steve Freeman Nat Pryce)|翔泳社の本
最後になりましたが、著者や翻訳者のみなさま、良い本をありがとうございました。