assertRegExp

via http://www02.so-net.ne.jp/~greentea/pre.html

assertRegExpなんていう名前がどうやったら作れるか不思議だ。結局、ユニット・テストは分かってても、その底にある精神というものまでは理解してないってことなんだろう。

ちょっと考え込んだのち、納得。

assertメソッド群を日本語に訳してみると

  • assertTrue → trueであること!
  • assertFalse → falseであること!
  • assertEquals → イコールであること!

となる。じゃあ、assertRegExpはどうなるかというと

あれ? 確認したいのは「引数で渡された値が正規表現であること」じゃないよね、メソッド名がメソッドの意図を表してないんじゃないの?。そーゆーことなのです。

assertTrue(/c.*a/ =~ "chikuwa")
↓
assertRegExp(/c.*a/, "chikuwa")
↓
正規表現であること!(/c.*a/, "chikuwa") // ?????