「テストしやすさ」について考える理由
テストしやすいコードの書き方について、昨年末からずっと考えています。Miško Hevery氏の書かれた「Guide: Writing Testable Code」に触発されたものです。
「コードの書き方をいくら考えても、実際にコードを書かなければ意味がないのではないか」という不安がないわけでもないのですが、言い訳を思いついたので、それを書いて自分を慰めることにします。
テストしづらい=利用しづらい
あるライブラリのテストを書こうとして、テストのしづらさに気づいたとします。たとえば、ライブラリ内部でオブジェクトを生成しているためにスタブを渡せない、などのハードルがある場合がそうです。
テストコードも、ライブラリを利用するクライアントのひとつです。そう考えると、このライブラリは少なくともひとつのクライアントからは利用しづらい設計になっているといえます。
利用しづらい設計のライブラリと、利用しやすい設計のライブラリ。どちらを書きたいかとなれば後者でしょう。
正直にいえば
私の性格上、作品を作るよりも、作品の作り方を研究するのが好きなだけなんですよね。文体ばかり研究して小説を書かない作家見習いのようなものです。