その1「assertion message first促進ギブス」

第一弾のTDDer養成ギブスは、私たちが一番頻繁に使っているものから行こうと思います。名づけて「assertion message first促進ギブス」です。

JUnitのassertEqualsメソッドには、引数が3つあるものと2つのものがあり、引数3つのassertEqualsメソッドの第1引数がアサーションメッセージです*1。ここに書かれた文字列はassertionが失敗したときに表示されます。「marsのメモ(id:masanobuimai:20040826#1093492773)」や「生きてま(http://log.giantech.jp/353)」で言及されているように、アサーションメッセージは非常に重要です。なぜなら、

  • テストが失敗したときに何が失敗したのかが一目瞭然
  • テストの可読性が上がる。日本語のほうがやっぱり読みやすい
  • テストをアサーションメッセージから書くことによって「これから何をテストするのか」が明確に意識される

からです。特に3番目の"テストをアサーションメッセージから書くことによって「これから何をテストするのか」が明確に意識される"は重要です。
しかしアサーションメッセージを書くことは結構忘れやすく、また面倒くさいのも現実です。このギブスは重要だけれども忘れやすいアサーションメッセージを書くことをちょっとだけ後押しします。

(追記) このエントリを書いた後しばらくして、私たちのチームは、テスト名そのものを日本語で書けばいいという方向になりました。masarlさんのアドバイスのおかげでした。

*1:私たちはアサートコメントと呼んでいましたが、アサーションメッセージと呼ぶのが一般的らしいので、ここではアサーションメッセージとします