home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2009/10/11/JUnit-addonsもJUnitでprivateメソッドをテストできるようだ

作成日: 2009-10-11 23:14:47   /   last updated at: 2009-10-11 23:27:42
カテゴリ: Java TDD 

技術/TDD/JavaでUnitTestでprivateメンバにアクセスしたい場合 でPrivilegedAccessorを使ったprivateメソッド (というか非publicなもの全体)のテストについて調べたが、どうやら JUnit-addons というのも暫く前からあって、こちらでもprivateメソッドをテストできるようになるらしい。

「らしい」というのは実際にDLして動かしたりしてないから。というか対応がJUnit3.7/3.8で停まっているらしく、2009/10時点でのJUnit4.x系列には対応しているのか居ないのか不明。

他にも日本語のJUnitのWikipediaによると "JxUnit" (xは小文字)というのもprivateメソッドをテストできるらしいが・・・

http://ja.wikipedia.org/wiki/JUnit

ただし、2009/10現在、"JXUnit"(xが大文字)はあるのだが、これはどうやらテストデータを分離するフレームワークのようで、XMLにテスト情報を記述してディレクトリ構成を整える事で実行してくれるとかそんなやつらしい。

「らしい」ばっかりになっているが、いずれにしてもprivateメソッドをテストするのは一苦労らしい。

・・・もういっそのこと、アクセス制御止めちゃえば?と思いたくもなる・・・。いや、だってさー、privateがなまじあるから、場当たりに「あ、この処理はprivateにまとめちゃえ~」って場当たりなメソッドがぐちゃぐちゃ増えてくるような気がする。いっそ全部publicで良いじゃん?publicにしちゃえば少なくとも多少はIF考えるようになるし、それでもぐちゃぐちゃになる時はぐちゃぐちゃになるんだから・・・。それに、ぐちゃぐちゃにされても、それでも、リフレクション使ったライブラリを使わなくてもpublicだからじゃんじゃんテストコードを書けるというのは結構ストレス少なそうなんだけど。

まぁ単体テストについて言えばオブジェクトなりクラスの「外からの/外への」IN/OUTを調べるのだからそもそもprivateなメンバを調べないとイケナイというのがおかしいといえばおかしいのだけれど。

original url: https://www.glamenv-septzen.net/view/455