TMD45'β'LOG!!!

Life is Beta-ful.

テストのアプローチとそのメリット/デメリットのまとめを読んだ

これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE を読んだ。

最後のまとめだけ引用するけど、これはTDDでは(というか和田さんが各所で)ずっと言われてることだし、それよりアプローチのメリット/デメリットについて何回でも読むべき。

* 良いユニットテストは Repeatable (繰り返し可能、再現可能)
  * テストダブルを使いこなす
  * 外部環境との界面にインターフェイスを作成し、テストダブルで置き換える

* 良いユニットテストは独立 (Independent) していなければならない
  * 後始末を忘れずに行い、テストを独立させる
  * static を避け、テストメソッド間の依存関係を断つ

* Assertion Roulette に注意する
  * 目指すのは「テストメソッド毎にアサーションひとつ」(しかし、やりすぎは禁物)
  * カスタムアサーションを使う
  * パラメタライズドテスト(Parameterized Test)を使いこなす

* Fragile Test (脆いテスト) に注意する
  * テストだけに使う部分の可視性を下げる
  *  private メソッドを扱いたくなったら要注意

* テストを設計ツールとして使う
  * テストコードのノイズを減らす
  * 日本語テストメソッドを試してみる
  * シンプルなコードとテスト失敗時の情報のバランスを考える

▲ ページトップへ移動