日々常々

ふつうのプログラマがあたりまえにしたいこと。

日本語でテストを書く

JUnit のテストメソッド名は日本語のが良いんじゃね?」と思う今日この頃。実際にテストメソッド名を全部日本語にしたら、判りやすい気がしなくもない感じでした。そうなると assert も日本語にしたくなりました。無いかなーと思って検索したら jassert が引っかかったのですが、イメージと若干違うので作ってみましょ。

で、 assertThat イイヨーなんてことをつい先日書いたので assertThat ベースで書きます。Matcher さえ都合が付けばなんとかなる感じですので先行きは明るい気がします。でも assertThat にも不満はあります。主に括弧が多くなる事。is に not を被せるだけで閉じ括弧が3つ並ぶのが確定します。まとめた static メソッドを使えば良い話なのですが、そうすると補完候補がいっぱい出て選ぶのが面倒だったりします。

// 括弧が増えていく
assertThat(actual1, is(actual2));
assertThat(actual1, is(not(actual2)));
assertThat(actual, is(not(empty())));

4個重なると見た目も悪いです。ぼーっとしてると頻繁に足りなかったり多すぎたりでコンパイルエラーになりますし。なので括弧を減らしましょう。

// すっきり
検証(actual1, は(actual2));
検証(actual1, は(actual2).ではない);
検証(actual, は.空.ではない);

ついでに 流れるようなインターフェース な感じでやってみる。補完効くし、きっと書きやすい……よ?書かないと判らないけれども。

こんな感じで手をつけかけています。なお、発端から"Javaルールブック"の 1.1.1 違反ですけど、これは諦めるしか無いのです。

Javaルールブック ?読みやすく効率的なコードの原則

Javaルールブック ?読みやすく効率的なコードの原則