2013年9月30日月曜日

最強モックツール JMockit その8 例外実行

株式会社ジェニシス 技術開発事業部の遠藤 太志郎(Tacy)です。

現在はモックツール「JMockit」の使い方をご紹介しています。

今回は例外、『Exception』の出し方についてです。

例外呼び出し


数あるテストの中で悩みがちなのが、「そのテストを実行出来ない」というパターンです。

  • ネットワークエラーのテストをしたい。⇒そのタイミングでネットワークエラーを発生出来ない。
  • 不正なファイルが来た場合に例外を発行するテストをしない。⇒それより前の処理でチェックが済んでいるので、その場所ではエラーを発行出来ない。

こういうのですね。
絶妙なタイミングでLANケーブル抜いたりとか、そうそう上手には出来ません。
そういう時こそ、モックツールの活躍のタイミングです。

JMockitを使って無理矢理例外を発生させてしまいましょう。

そのやり方が以下です。

new NonStrictExpectations() {{
      loginService.isLogin(anyString,anyString); result = new Exception();
  }};
}

ソース全体を見せるよりも、該当部分だけ記載した方が分かり易いでしょう。
resultにExceptionを設定するだけでOKです。

今回はサンプルとして「Exception」の型を使いましたが、IOExceptionとか、自前で作ったExceptionとか、例外クラスならどんなものにも対応出来ます。

特記事項としては、本体ソースがvoid型でも「result = new Exception();」の形は使えるということです。
void型なのに返り値を設定するのは変な気もしますが、そういうものだと理解して下さい。

終わりに


引き続きJMockitのご紹介をしていきます。

0 件のコメント:

コメントを投稿