Twitter 以上、ブログ未満

IT エンジニア。現在は働けておらず闘病中。いわゆる鬱です。

ユニットテストと結合テスト

一行まとめ:俺の中でも結論出てない。

  • メソッド単位のユニットテストをがっちり書いてると、ある日クラス構造や依存関係を大幅にリファクタリングしたくなったときに、大幅にユニットテストを書き換えないといけなくて、それがたいへんだるい。
  • そこで結合テストである。
    • f:id:Cside:20140601173532p:plain

    • 具体的な例で言うと、クラス B 〜 D のメソッド単位のユニットテストをあえて書かず、それらうまい具合に網羅できるクラス A の結合テストを書いておくと、 クラス B 〜 D のリファクタリングが、テストを書き換えずともできる。
    • ただこの方法にもデメリットがあって、結合テストが落ちたときにクラス B 〜 D のどれに原因があるか突き止めにくい、というだるさがある。
  • なので、ユニットテスト結合テスト、どっちに比重を置いてコードを書くほうが最終的にスピード上がるのかなーと悩んでいる昨今。
    • 書けるケースであれば後者の結合テスト戦略で行ったほうが手戻り少なくて幸せになれそうな気がしている。
    • まだ実験中。