staticメソッドばかりを詰め込んだクラスがあって、そのstaticメソッドを使いまくってるソースコードをどうにかしてJUnitにかけようと思った。
→めんどくさいので諦めた。
→でもなんとなく頭に来てるので、せめてクラスのすげ換えだけでもできないか、ClassLoaderの資料とか読み込む。
→とりあえずPoCは動いたので、せっかくなのでGoogleCodeに登録。
→でもtestが通らない・・・。Eclipse上で作成したPoCは動いたのに。何故?(今ここ)
テストが無い、いわゆるLEGACYなJavaクラスをテストしようとした時、インスタンス渡しで中で使われているものについてはEasyMockなどで何とか逃げれると思います。しかし、
AppUtils.calcFooBar(int i, int j)
みたいに、クラスのstaticメソッドと通信しまくっているコードはEasyMockも使えませんしテストしようがありません。
そういうときに、テストコードをSandBox化し、その中で"AppUtils"を使おうとすると、裏側では"test.AppUtils"に自動的に置き換えてくれるようなライブラリをイメージしてます。
"class shift" で、"s"が3つ続くので "clas3hift" になりました。shiftというのは、shellscriptとかで引数を一つずつずらしていくアレのイメージです。なんとなく、ダルマ落としを思い浮かべての命名でした。
コメント