最近、こんなテストをいくつか書いていて、イラっとしました。 post(:create_note, { :note => { ... } }) assert_equal( { "id" => 13, "created_at" => Time.now, "updated_at" => Time.now, .... }, JSON.parse(@response.body)) このテストにはいくつか問題があります。 idは13だと思っていて大丈夫か? postした時刻とassert_equalする時刻は等しいか? created_atとupdated_atが等しいことはテストできるか? どれも保証されません。*1 さて、これは、なんかどこかで見たことがあります。 まず連想するのはMLやHaskellのパターンマッチです。(ここにOCamlの例を書こうと思ったけど、忘れていたので省略。)パターンマ