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

日記/2010/10/14/Mockito + PowerMock、かなりオススメ

作成日: 2010-10-14 23:24:05   /   last updated at: 2010-10-14 23:37:11
カテゴリ: Java 

なんだかんだで、「アレが出来ない、コレが大変」と書いてきてしまったけど、static/final/private系絡みを回避していれば、かなり使いやすいのでオススメと言える。
インターフェイスのmockがサクサク作れるので、依存性注入な構造のコードであれば嵌りどころも少ない。

static/final/private系を完全に回避出来ているならMockitoのみで平気。
多少でもこれらがまざってくるなら、PowerMockを組み合わせましょう。

Apache MINAで簡単なEchoサーバのサンプルのテストコードを昨日・今日と書いていたのだけれど、IoHandlerやProtocolDecoder/Encoderなど、インターフェイス(or Adapter)を実装したシンプルなPOJOの部分は、あれほどstaticやMBeanServerで苦労したのが嘘だったかのように「さっくり」と書けてしまった。

"System.exit()をmockする"のと"ManagementFactory.getPlatformMBeanServer()"で嵌った時間を合わせて丁度、IoHandlerやProtocolDecoder/Encoder周りのテストコードに費やした時間とイーブンくらい。

嵌りどころを回避出来ていれば、かなり使いやすい。

近日中に今回でっち上げたEchoサーバのコードをcodereposにUPします。echoes.act9になります。

  1. echoes.act8を若干修正
  2. Maven化
  3. JMX Integration 組み込み
  4. シャットダウン専用ポートを使ったgraceful-shutdown
  5. Mockito & PowerMock によるUnitTest
  6. Commons Daemon によるWindowsサービス登録/削除BATの提供

只のEchoサーバの割には気合い入れてます。まぁその分、元は取れたと思います。Maven/JMX/Mockito系/Commons Daemonなど、一通り体に通しておきたかったテクニックでした。

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