今、リファクタリングRubyエディションを読んでいるんだけど、第1章のリファクタリングの写経が終わった。
この本では、リファクタリングの前に、リファクタリング対象コードに対するテストコードを書けと書いてあるのに、ユニットテストの紹介は第4章で手短にしか説明していない。また、第1章のビデオレンタルシステムのサンプルコードのリファクタリングでは、テストコードが掲載されていなくて、テストコードなしでリファクタリングするのは怖いし、できない。自分はRSpecを使ったテストの勉強はしたのだが、RubyのTest::Unitテストフレームワークの勉強ははじめてだ(本当言うと、10年以上前に、Ruby 256倍シリーズでユニットテストの勉強をした覚えがあるが、やり方をすっかり忘れてしまった)。そこで、第1章のサンプルコードに対するテストファイルを作成した。テスト項目をグループ分けしていなかったり、同じような記述をメソッド抽出していないけど、テストコードだからいいかと思う。テストコードはGitHubに上げたので、使いたい人がいたら、どうぞ。ただし、なるべくテスト対象コードを本の記述の通りに入力したつもりだが、ascii、html両フォーマットでのフッター行の期待する文字列が正しくなく、テストコードが動作しない場合があるかもしれない。その場合は、修正するので、Pull Requestを送って欲しい。
https://github.com/andropenguin/testfiles_refactoring_ruby_chap01.git